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">
6 <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
8 <title>Class: MCollective::RPC::Stats</title>
10 <link rel="stylesheet" href="../../rdoc.css" type="text/css" media="screen" />
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>
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">
31 <li><a href="../../lib/mcollective/rpc/stats_rb.html?TB_iframe=true&height=550&width=785"
32 class="thickbox" title="lib/mcollective/rpc/stats.rb">lib/mcollective/rpc/stats.rb</a></li>
41 <div id="class-metadata">
45 <div id="parent-class-section" class="section">
46 <h3 class="section-header">Parent</h3>
48 <p class="link"><a href="../../Object.html">Object</a></p>
53 <!-- Namespace Contents -->
56 <!-- Method Quickref -->
58 <div id="method-list-section" class="section">
59 <h3 class="section-header">Methods</h3>
60 <ul class="link-list">
62 <li><a href="#M000420">::new</a></li>
64 <li><a href="#M000423">#[]</a></li>
66 <li><a href="#M000426">#client_stats=</a></li>
68 <li><a href="#M000429">#discovered_agents</a></li>
70 <li><a href="#M000425">#fail</a></li>
72 <li><a href="#M000430">#finish_request</a></li>
74 <li><a href="#M000440">#no_response_report</a></li>
76 <li><a href="#M000431">#node_responded</a></li>
78 <li><a href="#M000424">#ok</a></li>
80 <li><a href="#M000439">#report</a></li>
82 <li><a href="#M000421">#reset</a></li>
84 <li><a href="#M000432">#text_for_aggregates</a></li>
86 <li><a href="#M000428">#time_block_execution</a></li>
88 <li><a href="#M000427">#time_discovery</a></li>
90 <li><a href="#M000422">#to_hash</a></li>
96 <!-- Included Modules -->
100 <div id="project-metadata">
103 <div id="fileindex-section" class="section project-section">
104 <h3 class="section-header">Files</h3>
107 <li class="file"><a href="../../COPYING.html">COPYING</a></li>
109 <li class="file"><a href="../../Gemfile.html">Gemfile</a></li>
111 <li class="file"><a href="../../README.html">README</a></li>
113 <li class="file"><a href="../../Rakefile.html">Rakefile</a></li>
115 <li class="file"><a href="../../etc/client_cfg_dist.html">client.cfg.dist</a></li>
117 <li class="file"><a href="../../etc/data-help_erb.html">data-help.erb</a></li>
119 <li class="file"><a href="../../etc/discovery-help_erb.html">discovery-help.erb</a></li>
121 <li class="file"><a href="../../etc/facts_yaml_dist.html">facts.yaml.dist</a></li>
123 <li class="file"><a href="../../etc/metadata-help_erb.html">metadata-help.erb</a></li>
125 <li class="file"><a href="../../etc/msg-help_erb.html">msg-help.erb</a></li>
127 <li class="file"><a href="../../etc/rpc-help_erb.html">rpc-help.erb</a></li>
129 <li class="file"><a href="../../etc/server_cfg_dist.html">server.cfg.dist</a></li>
131 <li class="file"><a href="../../etc/ssl/PLACEHOLDER.html">PLACEHOLDER</a></li>
133 <li class="file"><a href="../../etc/ssl/clients/PLACEHOLDER.html">PLACEHOLDER</a></li>
135 <li class="file"><a href="../../lib/mcollective/generators/templates/action_snippet_erb.html">action_snippet.erb</a></li>
137 <li class="file"><a href="../../lib/mcollective/generators/templates/data_input_snippet_erb.html">data_input_snippet.erb</a></li>
139 <li class="file"><a href="../../lib/mcollective/generators/templates/ddl_erb.html">ddl.erb</a></li>
141 <li class="file"><a href="../../lib/mcollective/generators/templates/plugin_erb.html">plugin.erb</a></li>
143 <li class="file"><a href="../../lib/mcollective/locales/en_yml.html">en.yml</a></li>
145 <li class="file"><a href="../../mcollective_init.html">mcollective.init</a></li>
151 <div id="classindex-section" class="section project-section">
152 <h3 class="section-header">Class Index
153 <span class="search-toggle"><img src="../../images/find.png"
154 height="16" width="16" alt="[+]"
155 title="show/hide quicksearch" /></span></h3>
156 <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
158 <legend>Quicksearch</legend>
159 <input type="text" name="quicksearch" value=""
160 class="quicksearch-field" />
164 <ul class="link-list">
166 <li><a href="../../MCollective.html">MCollective</a></li>
168 <li><a href="../../MCollective/Agent.html">MCollective::Agent</a></li>
170 <li><a href="../../MCollective/Agents.html">MCollective::Agents</a></li>
172 <li><a href="../../MCollective/Aggregate.html">MCollective::Aggregate</a></li>
174 <li><a href="../../MCollective/Aggregate/Base.html">MCollective::Aggregate::Base</a></li>
176 <li><a href="../../MCollective/Aggregate/Result.html">MCollective::Aggregate::Result</a></li>
178 <li><a href="../../MCollective/Aggregate/Result/Base.html">MCollective::Aggregate::Result::Base</a></li>
180 <li><a href="../../MCollective/Aggregate/Result/CollectionResult.html">MCollective::Aggregate::Result::CollectionResult</a></li>
182 <li><a href="../../MCollective/Aggregate/Result/NumericResult.html">MCollective::Aggregate::Result::NumericResult</a></li>
184 <li><a href="../../MCollective/Application.html">MCollective::Application</a></li>
186 <li><a href="../../MCollective/Applications.html">MCollective::Applications</a></li>
188 <li><a href="../../MCollective/Cache.html">MCollective::Cache</a></li>
190 <li><a href="../../MCollective/Client.html">MCollective::Client</a></li>
192 <li><a href="../../MCollective/CodedError.html">MCollective::CodedError</a></li>
194 <li><a href="../../MCollective/Config.html">MCollective::Config</a></li>
196 <li><a href="../../MCollective/Connector.html">MCollective::Connector</a></li>
198 <li><a href="../../MCollective/Connector/Base.html">MCollective::Connector::Base</a></li>
200 <li><a href="../../MCollective/DDL.html">MCollective::DDL</a></li>
202 <li><a href="../../MCollective/DDL/AgentDDL.html">MCollective::DDL::AgentDDL</a></li>
204 <li><a href="../../MCollective/DDL/Base.html">MCollective::DDL::Base</a></li>
206 <li><a href="../../MCollective/DDL/DataDDL.html">MCollective::DDL::DataDDL</a></li>
208 <li><a href="../../MCollective/DDL/DiscoveryDDL.html">MCollective::DDL::DiscoveryDDL</a></li>
210 <li><a href="../../MCollective/DDL/ValidatorDDL.html">MCollective::DDL::ValidatorDDL</a></li>
212 <li><a href="../../MCollective/DDLValidationError.html">MCollective::DDLValidationError</a></li>
214 <li><a href="../../MCollective/Data.html">MCollective::Data</a></li>
216 <li><a href="../../MCollective/Data/Base.html">MCollective::Data::Base</a></li>
218 <li><a href="../../MCollective/Data/Result.html">MCollective::Data::Result</a></li>
220 <li><a href="../../MCollective/Discovery.html">MCollective::Discovery</a></li>
222 <li><a href="../../MCollective/Facts.html">MCollective::Facts</a></li>
224 <li><a href="../../MCollective/Facts/Base.html">MCollective::Facts::Base</a></li>
226 <li><a href="../../MCollective/Generators.html">MCollective::Generators</a></li>
228 <li><a href="../../MCollective/Generators/AgentGenerator.html">MCollective::Generators::AgentGenerator</a></li>
230 <li><a href="../../MCollective/Generators/Base.html">MCollective::Generators::Base</a></li>
232 <li><a href="../../MCollective/Generators/DataGenerator.html">MCollective::Generators::DataGenerator</a></li>
234 <li><a href="../../MCollective/InvalidRPCData.html">MCollective::InvalidRPCData</a></li>
236 <li><a href="../../MCollective/Log.html">MCollective::Log</a></li>
238 <li><a href="../../MCollective/Logger.html">MCollective::Logger</a></li>
240 <li><a href="../../MCollective/Logger/Base.html">MCollective::Logger::Base</a></li>
242 <li><a href="../../MCollective/Logger/Console_logger.html">MCollective::Logger::Console_logger</a></li>
244 <li><a href="../../MCollective/Logger/File_logger.html">MCollective::Logger::File_logger</a></li>
246 <li><a href="../../MCollective/Logger/Syslog_logger.html">MCollective::Logger::Syslog_logger</a></li>
248 <li><a href="../../MCollective/Matcher.html">MCollective::Matcher</a></li>
250 <li><a href="../../MCollective/Matcher/Parser.html">MCollective::Matcher::Parser</a></li>
252 <li><a href="../../MCollective/Matcher/Scanner.html">MCollective::Matcher::Scanner</a></li>
254 <li><a href="../../MCollective/Message.html">MCollective::Message</a></li>
256 <li><a href="../../MCollective/MissingRPCData.html">MCollective::MissingRPCData</a></li>
258 <li><a href="../../MCollective/MsgDoesNotMatchRequestID.html">MCollective::MsgDoesNotMatchRequestID</a></li>
260 <li><a href="../../MCollective/MsgTTLExpired.html">MCollective::MsgTTLExpired</a></li>
262 <li><a href="../../MCollective/NotTargettedAtUs.html">MCollective::NotTargettedAtUs</a></li>
264 <li><a href="../../MCollective/Optionparser.html">MCollective::Optionparser</a></li>
266 <li><a href="../../MCollective/PluginManager.html">MCollective::PluginManager</a></li>
268 <li><a href="../../MCollective/PluginPackager.html">MCollective::PluginPackager</a></li>
270 <li><a href="../../MCollective/PluginPackager/AgentDefinition.html">MCollective::PluginPackager::AgentDefinition</a></li>
272 <li><a href="../../MCollective/PluginPackager/StandardDefinition.html">MCollective::PluginPackager::StandardDefinition</a></li>
274 <li><a href="../../MCollective/RPC.html">MCollective::RPC</a></li>
276 <li><a href="../../MCollective/RPC/ActionRunner.html">MCollective::RPC::ActionRunner</a></li>
278 <li><a href="../../MCollective/RPC/Agent.html">MCollective::RPC::Agent</a></li>
280 <li><a href="../../MCollective/RPC/Audit.html">MCollective::RPC::Audit</a></li>
282 <li><a href="../../MCollective/RPC/Client.html">MCollective::RPC::Client</a></li>
284 <li><a href="../../MCollective/RPC/Helpers.html">MCollective::RPC::Helpers</a></li>
286 <li><a href="../../MCollective/RPC/Progress.html">MCollective::RPC::Progress</a></li>
288 <li><a href="../../MCollective/RPC/Reply.html">MCollective::RPC::Reply</a></li>
290 <li><a href="../../MCollective/RPC/Request.html">MCollective::RPC::Request</a></li>
292 <li><a href="../../MCollective/RPC/Result.html">MCollective::RPC::Result</a></li>
294 <li><a href="../../MCollective/RPC/Stats.html">MCollective::RPC::Stats</a></li>
296 <li><a href="../../MCollective/RPCAborted.html">MCollective::RPCAborted</a></li>
298 <li><a href="../../MCollective/RPCError.html">MCollective::RPCError</a></li>
300 <li><a href="../../MCollective/Registration.html">MCollective::Registration</a></li>
302 <li><a href="../../MCollective/Registration/Base.html">MCollective::Registration::Base</a></li>
304 <li><a href="../../MCollective/Runner.html">MCollective::Runner</a></li>
306 <li><a href="../../MCollective/RunnerStats.html">MCollective::RunnerStats</a></li>
308 <li><a href="../../MCollective/SSL.html">MCollective::SSL</a></li>
310 <li><a href="../../MCollective/Security.html">MCollective::Security</a></li>
312 <li><a href="../../MCollective/Security/Base.html">MCollective::Security::Base</a></li>
314 <li><a href="../../MCollective/SecurityValidationFailed.html">MCollective::SecurityValidationFailed</a></li>
316 <li><a href="../../MCollective/Shell.html">MCollective::Shell</a></li>
318 <li><a href="../../MCollective/Translatable.html">MCollective::Translatable</a></li>
320 <li><a href="../../MCollective/UnixDaemon.html">MCollective::UnixDaemon</a></li>
322 <li><a href="../../MCollective/UnknownRPCAction.html">MCollective::UnknownRPCAction</a></li>
324 <li><a href="../../MCollective/UnknownRPCError.html">MCollective::UnknownRPCError</a></li>
326 <li><a href="../../MCollective/Util.html">MCollective::Util</a></li>
328 <li><a href="../../MCollective/Validator.html">MCollective::Validator</a></li>
330 <li><a href="../../MCollective/ValidatorError.html">MCollective::ValidatorError</a></li>
332 <li><a href="../../MCollective/WindowsDaemon.html">MCollective::WindowsDaemon</a></li>
334 <li><a href="../../Array.html">Array</a></li>
336 <li><a href="../../Dir.html">Dir</a></li>
338 <li><a href="../../Object.html">Object</a></li>
340 <li><a href="../../String.html">String</a></li>
342 <li><a href="../../Symbol.html">Symbol</a></li>
345 <div id="no-class-search-results" style="display: none;">No matching classes.</div>
352 <div id="documentation">
353 <h1 class="class">MCollective::RPC::Stats</h1>
355 <div id="description">
357 Class to wrap all the stats and to keep track of some timings
367 <div id="attribute-method-details" class="method-section section">
368 <h3 class="section-header">Attributes</h3>
371 <div id="noresponsefrom-attribute-method" class="method-detail">
372 <a name="noresponsefrom"></a>
374 <a name="noresponsefrom="></a>
376 <div class="method-heading attribute-method-heading">
377 <span class="method-name">noresponsefrom</span><span
378 class="attribute-access-type">[RW]</span>
381 <div class="method-description">
383 <p class="missing-docs">(Not documented)</p>
388 <div id="starttime-attribute-method" class="method-detail">
389 <a name="starttime"></a>
391 <a name="starttime="></a>
393 <div class="method-heading attribute-method-heading">
394 <span class="method-name">starttime</span><span
395 class="attribute-access-type">[RW]</span>
398 <div class="method-description">
400 <p class="missing-docs">(Not documented)</p>
405 <div id="discoverytime-attribute-method" class="method-detail">
406 <a name="discoverytime"></a>
408 <a name="discoverytime="></a>
410 <div class="method-heading attribute-method-heading">
411 <span class="method-name">discoverytime</span><span
412 class="attribute-access-type">[RW]</span>
415 <div class="method-description">
417 <p class="missing-docs">(Not documented)</p>
422 <div id="blocktime-attribute-method" class="method-detail">
423 <a name="blocktime"></a>
425 <a name="blocktime="></a>
427 <div class="method-heading attribute-method-heading">
428 <span class="method-name">blocktime</span><span
429 class="attribute-access-type">[RW]</span>
432 <div class="method-description">
434 <p class="missing-docs">(Not documented)</p>
439 <div id="responses-attribute-method" class="method-detail">
440 <a name="responses"></a>
442 <a name="responses="></a>
444 <div class="method-heading attribute-method-heading">
445 <span class="method-name">responses</span><span
446 class="attribute-access-type">[RW]</span>
449 <div class="method-description">
451 <p class="missing-docs">(Not documented)</p>
456 <div id="totaltime-attribute-method" class="method-detail">
457 <a name="totaltime"></a>
459 <a name="totaltime="></a>
461 <div class="method-heading attribute-method-heading">
462 <span class="method-name">totaltime</span><span
463 class="attribute-access-type">[RW]</span>
466 <div class="method-description">
468 <p class="missing-docs">(Not documented)</p>
473 <div id="discovered-attribute-method" class="method-detail">
474 <a name="discovered"></a>
476 <a name="discovered="></a>
478 <div class="method-heading attribute-method-heading">
479 <span class="method-name">discovered</span><span
480 class="attribute-access-type">[RW]</span>
483 <div class="method-description">
485 <p class="missing-docs">(Not documented)</p>
490 <div id="discovered-nodes-attribute-method" class="method-detail">
491 <a name="discovered_nodes"></a>
493 <a name="discovered_nodes="></a>
495 <div class="method-heading attribute-method-heading">
496 <span class="method-name">discovered_nodes</span><span
497 class="attribute-access-type">[RW]</span>
500 <div class="method-description">
502 <p class="missing-docs">(Not documented)</p>
507 <div id="okcount-attribute-method" class="method-detail">
508 <a name="okcount"></a>
510 <a name="okcount="></a>
512 <div class="method-heading attribute-method-heading">
513 <span class="method-name">okcount</span><span
514 class="attribute-access-type">[RW]</span>
517 <div class="method-description">
519 <p class="missing-docs">(Not documented)</p>
524 <div id="failcount-attribute-method" class="method-detail">
525 <a name="failcount"></a>
527 <a name="failcount="></a>
529 <div class="method-heading attribute-method-heading">
530 <span class="method-name">failcount</span><span
531 class="attribute-access-type">[RW]</span>
534 <div class="method-description">
536 <p class="missing-docs">(Not documented)</p>
541 <div id="noresponsefrom-attribute-method" class="method-detail">
542 <a name="noresponsefrom"></a>
544 <a name="noresponsefrom="></a>
546 <div class="method-heading attribute-method-heading">
547 <span class="method-name">noresponsefrom</span><span
548 class="attribute-access-type">[RW]</span>
551 <div class="method-description">
553 <p class="missing-docs">(Not documented)</p>
558 <div id="responsesfrom-attribute-method" class="method-detail">
559 <a name="responsesfrom"></a>
561 <a name="responsesfrom="></a>
563 <div class="method-heading attribute-method-heading">
564 <span class="method-name">responsesfrom</span><span
565 class="attribute-access-type">[RW]</span>
568 <div class="method-description">
570 <p class="missing-docs">(Not documented)</p>
575 <div id="requestid-attribute-method" class="method-detail">
576 <a name="requestid"></a>
578 <a name="requestid="></a>
580 <div class="method-heading attribute-method-heading">
581 <span class="method-name">requestid</span><span
582 class="attribute-access-type">[RW]</span>
585 <div class="method-description">
587 <p class="missing-docs">(Not documented)</p>
592 <div id="aggregate-summary-attribute-method" class="method-detail">
593 <a name="aggregate_summary"></a>
595 <a name="aggregate_summary="></a>
597 <div class="method-heading attribute-method-heading">
598 <span class="method-name">aggregate_summary</span><span
599 class="attribute-access-type">[RW]</span>
602 <div class="method-description">
604 <p class="missing-docs">(Not documented)</p>
609 <div id="ddl-attribute-method" class="method-detail">
614 <div class="method-heading attribute-method-heading">
615 <span class="method-name">ddl</span><span
616 class="attribute-access-type">[RW]</span>
619 <div class="method-description">
621 <p class="missing-docs">(Not documented)</p>
626 <div id="aggregate-failures-attribute-method" class="method-detail">
627 <a name="aggregate_failures"></a>
629 <a name="aggregate_failures="></a>
631 <div class="method-heading attribute-method-heading">
632 <span class="method-name">aggregate_failures</span><span
633 class="attribute-access-type">[RW]</span>
636 <div class="method-description">
638 <p class="missing-docs">(Not documented)</p>
648 <div id="public-class-method-details" class="method-section section">
649 <h3 class="section-header">Public Class Methods</h3>
652 <div id="new-method" class="method-detail ">
653 <a name="M000420"></a>
655 <div class="method-heading">
657 <span class="method-name">new</span><span
658 class="method-args">()</span>
659 <span class="method-click-advice">click to toggle source</span>
663 <div class="method-description">
665 <p class="missing-docs">(Not documented)</p>
669 <div class="method-source-code"
672 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 9</span>
673 9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
674 10: <span class="ruby-identifier">reset</span>
675 11: <span class="ruby-keyword kw">end</span></pre>
686 <div id="public-instance-method-details" class="method-section section">
687 <h3 class="section-header">Public Instance Methods</h3>
690 <div id="--method" class="method-detail ">
691 <a name="M000423"></a>
693 <div class="method-heading">
695 <span class="method-name">[]</span><span
696 class="method-args">(key)</span>
697 <span class="method-click-advice">click to toggle source</span>
701 <div class="method-description">
704 Fake hash access to keep things backward compatible
709 <div class="method-source-code"
712 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 51</span>
713 51: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">key</span>)
714 52: <span class="ruby-identifier">to_hash</span>[<span class="ruby-identifier">key</span>]
715 53: <span class="ruby-keyword kw">rescue</span>
716 54: <span class="ruby-keyword kw">nil</span>
717 55: <span class="ruby-keyword kw">end</span></pre>
726 <div id="client-stats--method" class="method-detail ">
727 <a name="M000426"></a>
729 <div class="method-heading">
731 <span class="method-name">client_stats=</span><span
732 class="method-args">(stats)</span>
733 <span class="method-click-advice">click to toggle source</span>
737 <div class="method-description">
740 Re-initializes the object with stats from the basic client
745 <div class="method-source-code"
746 id="client-stats--source">
748 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 72</span>
749 72: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">client_stats=</span>(<span class="ruby-identifier">stats</span>)
750 73: <span class="ruby-ivar">@noresponsefrom</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:noresponsefrom</span>]
751 74: <span class="ruby-ivar">@responses</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:responses</span>]
752 75: <span class="ruby-ivar">@starttime</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:starttime</span>]
753 76: <span class="ruby-ivar">@blocktime</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:blocktime</span>]
754 77: <span class="ruby-ivar">@totaltime</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:totaltime</span>]
755 78: <span class="ruby-ivar">@requestid</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:requestid</span>]
756 79: <span class="ruby-ivar">@discoverytime</span> = <span class="ruby-identifier">stats</span>[<span class="ruby-identifier">:discoverytime</span>] <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@discoverytime</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
757 80: <span class="ruby-keyword kw">end</span></pre>
766 <div id="discovered-agents-method" class="method-detail ">
767 <a name="M000429"></a>
769 <div class="method-heading">
771 <span class="method-name">discovered_agents</span><span
772 class="method-args">(agents)</span>
773 <span class="method-click-advice">click to toggle source</span>
777 <div class="method-description">
780 Update discovered and <a
781 href="Stats.html#discovered_nodes">discovered_nodes</a> based on discovery
787 <div class="method-source-code"
788 id="discovered-agents-source">
790 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 110</span>
791 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">discovered_agents</span>(<span class="ruby-identifier">agents</span>)
792 111: <span class="ruby-ivar">@discovered_nodes</span> = <span class="ruby-identifier">agents</span>
793 112: <span class="ruby-ivar">@discovered</span> = <span class="ruby-identifier">agents</span>.<span class="ruby-identifier">size</span>
794 113: <span class="ruby-keyword kw">end</span></pre>
803 <div id="fail-method" class="method-detail ">
804 <a name="M000425"></a>
806 <div class="method-heading">
808 <span class="method-name">fail</span><span
809 class="method-args">()</span>
810 <span class="method-click-advice">click to toggle source</span>
814 <div class="method-description">
817 increment the count of failed hosts
822 <div class="method-source-code"
825 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 65</span>
826 65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fail</span>
827 66: <span class="ruby-ivar">@failcount</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
828 67: <span class="ruby-keyword kw">rescue</span>
829 68: <span class="ruby-ivar">@failcount</span> = <span class="ruby-value">1</span>
830 69: <span class="ruby-keyword kw">end</span></pre>
839 <div id="finish-request-method" class="method-detail ">
840 <a name="M000430"></a>
842 <div class="method-heading">
844 <span class="method-name">finish_request</span><span
845 class="method-args">()</span>
846 <span class="method-click-advice">click to toggle source</span>
850 <div class="method-description">
853 Helper to calculate total time etc
858 <div class="method-source-code"
859 id="finish-request-source">
861 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 116</span>
862 116: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finish_request</span>
863 117: <span class="ruby-ivar">@totaltime</span> = <span class="ruby-ivar">@blocktime</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@discoverytime</span>
865 119: <span class="ruby-comment cmt"># figures out who we had no responses from</span>
866 120: <span class="ruby-identifier">dhosts</span> = <span class="ruby-ivar">@discovered_nodes</span>.<span class="ruby-identifier">clone</span>
867 121: <span class="ruby-ivar">@responsesfrom</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">r</span><span class="ruby-operator">|</span> <span class="ruby-identifier">dhosts</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">r</span>)}
868 122: <span class="ruby-ivar">@noresponsefrom</span> = <span class="ruby-identifier">dhosts</span>
869 123: <span class="ruby-keyword kw">rescue</span>
870 124: <span class="ruby-ivar">@totaltime</span> = <span class="ruby-value">0</span>
871 125: <span class="ruby-ivar">@noresponsefrom</span> = []
872 126: <span class="ruby-keyword kw">end</span></pre>
881 <div id="no-response-report-method" class="method-detail ">
882 <a name="M000440"></a>
884 <div class="method-heading">
886 <span class="method-name">no_response_report</span><span
887 class="method-args">()</span>
888 <span class="method-click-advice">click to toggle source</span>
892 <div class="method-description">
895 Returns a blob of text indicating what nodes did not respond
900 <div class="method-source-code"
901 id="no-response-report-source">
903 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 237</span>
904 237: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">no_response_report</span>
905 238: <span class="ruby-identifier">result_text</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
907 240: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@noresponsefrom</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span>
908 241: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">puts</span>
909 242: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:red</span>, <span class="ruby-value str">"No response from:"</span>)
910 243: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">puts</span>
912 245: <span class="ruby-ivar">@noresponsefrom</span>.<span class="ruby-identifier">sort</span>.<span class="ruby-identifier">in_groups_of</span>(<span class="ruby-value">3</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
913 246: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">puts</span> <span class="ruby-value str">" %-30s%-30s%-30s"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">c</span>
914 247: <span class="ruby-keyword kw">end</span>
916 249: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">puts</span>
917 250: <span class="ruby-keyword kw">end</span>
919 252: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">string</span>
920 253: <span class="ruby-keyword kw">end</span></pre>
929 <div id="node-responded-method" class="method-detail ">
930 <a name="M000431"></a>
932 <div class="method-heading">
934 <span class="method-name">node_responded</span><span
935 class="method-args">(node)</span>
936 <span class="method-click-advice">click to toggle source</span>
940 <div class="method-description">
943 Helper to keep track of who we received responses from
948 <div class="method-source-code"
949 id="node-responded-source">
951 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 129</span>
952 129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">node_responded</span>(<span class="ruby-identifier">node</span>)
953 130: <span class="ruby-ivar">@responsesfrom</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">node</span>
954 131: <span class="ruby-keyword kw">rescue</span>
955 132: <span class="ruby-ivar">@responsesfrom</span> = [<span class="ruby-identifier">node</span>]
956 133: <span class="ruby-keyword kw">end</span></pre>
965 <div id="ok-method" class="method-detail ">
966 <a name="M000424"></a>
968 <div class="method-heading">
970 <span class="method-name">ok</span><span
971 class="method-args">()</span>
972 <span class="method-click-advice">click to toggle source</span>
976 <div class="method-description">
979 increment the count of ok hosts
984 <div class="method-source-code"
987 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 58</span>
988 58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ok</span>
989 59: <span class="ruby-ivar">@okcount</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
990 60: <span class="ruby-keyword kw">rescue</span>
991 61: <span class="ruby-ivar">@okcount</span> = <span class="ruby-value">1</span>
992 62: <span class="ruby-keyword kw">end</span></pre>
1001 <div id="report-method" class="method-detail ">
1002 <a name="M000439"></a>
1004 <div class="method-heading">
1006 <span class="method-name">report</span><span
1007 class="method-args">(caption = "rpc stats", summarize = true, verbose = false)</span>
1008 <span class="method-click-advice">click to toggle source</span>
1012 <div class="method-description">
1015 Returns a blob of text representing the request status based on the stats
1016 contained in this class
1021 <div class="method-source-code"
1024 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 187</span>
1025 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">report</span>(<span class="ruby-identifier">caption</span> = <span class="ruby-value str">"rpc stats"</span>, <span class="ruby-identifier">summarize</span> = <span class="ruby-keyword kw">true</span>, <span class="ruby-identifier">verbose</span> = <span class="ruby-keyword kw">false</span>)
1026 188: <span class="ruby-identifier">result_text</span> = []
1028 190: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">verbose</span>
1029 191: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@aggregate_summary</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">summarize</span>
1030 192: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">text_for_aggregates</span>
1031 193: <span class="ruby-keyword kw">else</span>
1032 194: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">""</span>
1033 195: <span class="ruby-keyword kw">end</span>
1035 197: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:yellow</span>, <span class="ruby-node">"---- #{caption} ----"</span>)
1037 199: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@discovered</span>
1038 200: <span class="ruby-ivar">@responses</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@discovered</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">color</span> = <span class="ruby-identifier">:red</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">color</span> = <span class="ruby-identifier">:reset</span>
1039 201: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" Nodes: %s / %s"</span> <span class="ruby-operator">%</span> [ <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">color</span>, <span class="ruby-ivar">@discovered</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">color</span>, <span class="ruby-ivar">@responses</span>) ]
1040 202: <span class="ruby-keyword kw">else</span>
1041 203: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-node">" Nodes: #{@responses}"</span>
1042 204: <span class="ruby-keyword kw">end</span>
1044 206: <span class="ruby-ivar">@failcount</span> <span class="ruby-operator"><</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">color</span> = <span class="ruby-identifier">:red</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">color</span> = <span class="ruby-identifier">:reset</span>
1046 208: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" Pass / Fail: %s / %s"</span> <span class="ruby-operator">%</span> [<span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">color</span>, <span class="ruby-ivar">@okcount</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">color</span>, <span class="ruby-ivar">@failcount</span>) ]
1047 209: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" Start Time: %s"</span> <span class="ruby-operator">%</span> [<span class="ruby-constant">Time</span>.<span class="ruby-identifier">at</span>(<span class="ruby-ivar">@starttime</span>)]
1048 210: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" Discovery Time: %.2fms"</span> <span class="ruby-operator">%</span> [<span class="ruby-ivar">@discoverytime</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>]
1049 211: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" Agent Time: %.2fms"</span> <span class="ruby-operator">%</span> [<span class="ruby-ivar">@blocktime</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>]
1050 212: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">" Total Time: %.2fms"</span> <span class="ruby-operator">%</span> [<span class="ruby-ivar">@totaltime</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>]
1051 213: <span class="ruby-keyword kw">else</span>
1052 214: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@discovered</span>
1053 215: <span class="ruby-ivar">@responses</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@discovered</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">color</span> = <span class="ruby-identifier">:red</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">color</span> = <span class="ruby-identifier">:green</span>
1055 217: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@aggregate_summary</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@aggregate_failures</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">summarize</span>
1056 218: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">text_for_aggregates</span>
1057 219: <span class="ruby-keyword kw">else</span>
1058 220: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">""</span>
1059 221: <span class="ruby-keyword kw">end</span>
1061 223: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"Finished processing %s / %s hosts in %.2f ms"</span> <span class="ruby-operator">%</span> [<span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">color</span>, <span class="ruby-ivar">@responses</span>), <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">color</span>, <span class="ruby-ivar">@discovered</span>), <span class="ruby-ivar">@blocktime</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>]
1062 224: <span class="ruby-keyword kw">else</span>
1063 225: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"Finished processing %s hosts in %.2f ms"</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-ivar">@responses</span>), <span class="ruby-ivar">@blocktime</span> <span class="ruby-operator">*</span> <span class="ruby-value">1000</span>]
1064 226: <span class="ruby-keyword kw">end</span>
1065 227: <span class="ruby-keyword kw">end</span>
1067 229: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">no_response_report</span> <span class="ruby-operator">!=</span> <span class="ruby-value str">""</span>
1068 230: <span class="ruby-identifier">result_text</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">""</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">no_response_report</span>
1069 231: <span class="ruby-keyword kw">end</span>
1071 233: <span class="ruby-identifier">result_text</span>.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>)
1072 234: <span class="ruby-keyword kw">end</span></pre>
1081 <div id="reset-method" class="method-detail ">
1082 <a name="M000421"></a>
1084 <div class="method-heading">
1086 <span class="method-name">reset</span><span
1087 class="method-args">()</span>
1088 <span class="method-click-advice">click to toggle source</span>
1092 <div class="method-description">
1095 Resets stats, if discovery time is set we keep it as it was
1100 <div class="method-source-code"
1103 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 14</span>
1104 14: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
1105 15: <span class="ruby-ivar">@noresponsefrom</span> = []
1106 16: <span class="ruby-ivar">@responsesfrom</span> = []
1107 17: <span class="ruby-ivar">@responses</span> = <span class="ruby-value">0</span>
1108 18: <span class="ruby-ivar">@starttime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_f</span>
1109 19: <span class="ruby-ivar">@discoverytime</span> = <span class="ruby-value">0</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@discoverytime</span>
1110 20: <span class="ruby-ivar">@blocktime</span> = <span class="ruby-value">0</span>
1111 21: <span class="ruby-ivar">@totaltime</span> = <span class="ruby-value">0</span>
1112 22: <span class="ruby-ivar">@discovered</span> = <span class="ruby-value">0</span>
1113 23: <span class="ruby-ivar">@discovered_nodes</span> = []
1114 24: <span class="ruby-ivar">@okcount</span> = <span class="ruby-value">0</span>
1115 25: <span class="ruby-ivar">@failcount</span> = <span class="ruby-value">0</span>
1116 26: <span class="ruby-ivar">@noresponsefrom</span> = []
1117 27: <span class="ruby-ivar">@requestid</span> = <span class="ruby-keyword kw">nil</span>
1118 28: <span class="ruby-ivar">@aggregate_summary</span> = []
1119 29: <span class="ruby-ivar">@aggregate_failures</span> = []
1120 30: <span class="ruby-keyword kw">end</span></pre>
1129 <div id="text-for-aggregates-method" class="method-detail ">
1130 <a name="M000432"></a>
1132 <div class="method-heading">
1134 <span class="method-name">text_for_aggregates</span><span
1135 class="method-args">()</span>
1136 <span class="method-click-advice">click to toggle source</span>
1140 <div class="method-description">
1142 <p class="missing-docs">(Not documented)</p>
1146 <div class="method-source-code"
1147 id="text-for-aggregates-source">
1149 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 135</span>
1150 135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">text_for_aggregates</span>
1151 136: <span class="ruby-identifier">result</span> = <span class="ruby-constant">StringIO</span>.<span class="ruby-identifier">new</span>
1153 138: <span class="ruby-ivar">@aggregate_summary</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">aggregate</span><span class="ruby-operator">|</span>
1154 139: <span class="ruby-identifier">output_item</span> = <span class="ruby-identifier">aggregate</span>.<span class="ruby-identifier">result</span>[<span class="ruby-identifier">:output</span>]
1156 141: <span class="ruby-keyword kw">begin</span>
1157 142: <span class="ruby-identifier">action_interface</span> = <span class="ruby-ivar">@ddl</span>.<span class="ruby-identifier">action_interface</span>(<span class="ruby-identifier">aggregate</span>.<span class="ruby-identifier">action</span>)
1158 143: <span class="ruby-identifier">display_as</span> = <span class="ruby-identifier">action_interface</span>[<span class="ruby-identifier">:output</span>][<span class="ruby-identifier">output_item</span>][<span class="ruby-identifier">:display_as</span>]
1159 144: <span class="ruby-keyword kw">rescue</span>
1160 145: <span class="ruby-identifier">display_as</span> = <span class="ruby-identifier">output_item</span>
1161 146: <span class="ruby-keyword kw">end</span>
1163 148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aggregate</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Aggregate</span><span class="ruby-operator">::</span><span class="ruby-constant">Result</span><span class="ruby-operator">::</span><span class="ruby-constant">Base</span>)
1164 149: <span class="ruby-identifier">aggregate_report</span> = <span class="ruby-identifier">aggregate</span>.<span class="ruby-identifier">to_s</span>
1165 150: <span class="ruby-keyword kw">else</span>
1166 151: <span class="ruby-keyword kw">next</span>
1167 152: <span class="ruby-keyword kw">end</span>
1169 154: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-value str">"Summary of %s:"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">display_as</span>)
1170 155: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span>
1171 156: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">aggregate_report</span> <span class="ruby-operator">==</span> <span class="ruby-value str">""</span>
1172 157: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span> <span class="ruby-identifier">aggregate</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">"\n"</span>).<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-value str">" "</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">x</span>}.<span class="ruby-identifier">join</span>(<span class="ruby-value str">"\n"</span>)
1173 158: <span class="ruby-keyword kw">else</span>
1174 159: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:yellow</span>, <span class="ruby-value str">" No aggregate summary could be computed"</span>)
1175 160: <span class="ruby-keyword kw">end</span>
1176 161: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span>
1177 162: <span class="ruby-keyword kw">end</span>
1179 164: <span class="ruby-ivar">@aggregate_failures</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">failed</span><span class="ruby-operator">|</span>
1180 165: <span class="ruby-keyword kw">case</span>(<span class="ruby-identifier">failed</span>[<span class="ruby-identifier">:type</span>])
1181 166: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:startup</span>
1182 167: <span class="ruby-identifier">message</span> = <span class="ruby-value str">"exception raised while processing startup hook"</span>
1183 168: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:create</span>
1184 169: <span class="ruby-identifier">message</span> = <span class="ruby-node">"unspecified output '#{failed[:name]}' for the action"</span>
1185 170: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:process_result</span>
1186 171: <span class="ruby-identifier">message</span> = <span class="ruby-value str">"exception raised while processing result data"</span>
1187 172: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:summarize</span>
1188 173: <span class="ruby-identifier">message</span> = <span class="ruby-value str">"exception raised while summarizing"</span>
1189 174: <span class="ruby-keyword kw">end</span>
1191 176: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:bold</span>, <span class="ruby-value str">"Summary of %s:"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">failed</span>[<span class="ruby-identifier">:name</span>])
1192 177: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span>
1193 178: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">colorize</span>(<span class="ruby-identifier">:yellow</span>, <span class="ruby-value str">" Could not compute summary - %s"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">message</span>)
1194 179: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">puts</span>
1195 180: <span class="ruby-keyword kw">end</span>
1197 182: <span class="ruby-identifier">result</span>.<span class="ruby-identifier">string</span>
1198 183: <span class="ruby-keyword kw">end</span></pre>
1207 <div id="time-block-execution-method" class="method-detail ">
1208 <a name="M000428"></a>
1210 <div class="method-heading">
1212 <span class="method-name">time_block_execution</span><span
1213 class="method-args">(action)</span>
1214 <span class="method-click-advice">click to toggle source</span>
1218 <div class="method-description">
1221 helper to time block execution time
1226 <div class="method-source-code"
1227 id="time-block-execution-source">
1229 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 96</span>
1230 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">time_block_execution</span>(<span class="ruby-identifier">action</span>)
1231 97: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">action</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:start</span>
1232 98: <span class="ruby-ivar">@block_start</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_f</span>
1233 99: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">action</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:end</span>
1234 100: <span class="ruby-ivar">@blocktime</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@block_start</span>
1235 101: <span class="ruby-keyword kw">else</span>
1236 102: <span class="ruby-identifier">raise</span>(<span class="ruby-node">"Uknown block action #{action}"</span>)
1237 103: <span class="ruby-keyword kw">end</span>
1238 104: <span class="ruby-keyword kw">rescue</span>
1239 105: <span class="ruby-ivar">@blocktime</span> = <span class="ruby-value">0</span>
1240 106: <span class="ruby-keyword kw">end</span></pre>
1249 <div id="time-discovery-method" class="method-detail ">
1250 <a name="M000427"></a>
1252 <div class="method-heading">
1254 <span class="method-name">time_discovery</span><span
1255 class="method-args">(action)</span>
1256 <span class="method-click-advice">click to toggle source</span>
1260 <div class="method-description">
1263 Utility to time discovery from :start to :end
1268 <div class="method-source-code"
1269 id="time-discovery-source">
1271 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 83</span>
1272 83: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">time_discovery</span>(<span class="ruby-identifier">action</span>)
1273 84: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">action</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:start</span>
1274 85: <span class="ruby-ivar">@discovery_start</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_f</span>
1275 86: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">action</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:end</span>
1276 87: <span class="ruby-ivar">@discoverytime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">-</span> <span class="ruby-ivar">@discovery_start</span>
1277 88: <span class="ruby-keyword kw">else</span>
1278 89: <span class="ruby-identifier">raise</span>(<span class="ruby-node">"Uknown discovery action #{action}"</span>)
1279 90: <span class="ruby-keyword kw">end</span>
1280 91: <span class="ruby-keyword kw">rescue</span>
1281 92: <span class="ruby-ivar">@discoverytime</span> = <span class="ruby-value">0</span>
1282 93: <span class="ruby-keyword kw">end</span></pre>
1291 <div id="to-hash-method" class="method-detail ">
1292 <a name="M000422"></a>
1294 <div class="method-heading">
1296 <span class="method-name">to_hash</span><span
1297 class="method-args">()</span>
1298 <span class="method-click-advice">click to toggle source</span>
1302 <div class="method-description">
1305 returns a hash of our stats
1310 <div class="method-source-code"
1311 id="to-hash-source">
1313 <span class="ruby-comment cmt"># File lib/mcollective/rpc/stats.rb, line 33</span>
1314 33: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
1315 34: {<span class="ruby-identifier">:noresponsefrom</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@noresponsefrom</span>,
1316 35: <span class="ruby-identifier">:starttime</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@starttime</span>,
1317 36: <span class="ruby-identifier">:discoverytime</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@discoverytime</span>,
1318 37: <span class="ruby-identifier">:blocktime</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@blocktime</span>,
1319 38: <span class="ruby-identifier">:responses</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@responses</span>,
1320 39: <span class="ruby-identifier">:totaltime</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@totaltime</span>,
1321 40: <span class="ruby-identifier">:discovered</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@discovered</span>,
1322 41: <span class="ruby-identifier">:discovered_nodes</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@discovered_nodes</span>,
1323 42: <span class="ruby-identifier">:noresponsefrom</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@noresponsefrom</span>,
1324 43: <span class="ruby-identifier">:okcount</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@okcount</span>,
1325 44: <span class="ruby-identifier">:requestid</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@requestid</span>,
1326 45: <span class="ruby-identifier">:failcount</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@failcount</span>,
1327 46: <span class="ruby-identifier">:aggregate_summary</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@aggregate_summary</span>,
1328 47: <span class="ruby-identifier">:aggregate_failures</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@aggregate_failures</span>}
1329 48: <span class="ruby-keyword kw">end</span></pre>
1344 <div id="rdoc-debugging-section-dump" class="debugging-section">
1346 <p>Disabled; run with --debug to generate this.</p>
1350 <div id="validator-badges">
1351 <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1352 <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1353 Rdoc Generator</a> 1.1.6</small>.</p>