Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / Runner.html
diff --git a/doc/classes/MCollective/Runner.html b/doc/classes/MCollective/Runner.html
new file mode 100644 (file)
index 0000000..62f7e8f
--- /dev/null
@@ -0,0 +1,253 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html 
+     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>Class: MCollective::Runner</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+  <meta http-equiv="Content-Script-Type" content="text/javascript" />
+  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
+  <script type="text/javascript">
+  // <![CDATA[
+
+  function popupCode( url ) {
+    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
+  }
+
+  function toggleCode( id ) {
+    if ( document.getElementById )
+      elem = document.getElementById( id );
+    else if ( document.all )
+      elem = eval( "document.all." + id );
+    else
+      return false;
+
+    elemStyle = elem.style;
+    
+    if ( elemStyle.display != "block" ) {
+      elemStyle.display = "block"
+    } else {
+      elemStyle.display = "none"
+    }
+
+    return true;
+  }
+  
+  // Make codeblocks hidden by default
+  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
+  
+  // ]]>
+  </script>
+
+</head>
+<body>
+
+
+
+    <div id="classHeader">
+        <table class="header-table">
+        <tr class="top-aligned-row">
+          <td><strong>Class</strong></td>
+          <td class="class-name-in-header">MCollective::Runner</td>
+        </tr>
+        <tr class="top-aligned-row">
+            <td><strong>In:</strong></td>
+            <td>
+                <a href="../../files/lib/mcollective/runner_rb.html">
+                lib/mcollective/runner.rb
+                </a>
+        <br />
+            </td>
+        </tr>
+
+        <tr class="top-aligned-row">
+            <td><strong>Parent:</strong></td>
+            <td>
+                Object
+            </td>
+        </tr>
+        </table>
+    </div>
+  <!-- banner header -->
+
+  <div id="bodyContent">
+
+
+
+  <div id="contextContent">
+
+    <div id="description">
+      <p>
+The main runner for the daemon, supports running in the foreground and the
+background, keeps detailed stats and provides hooks to access all this
+information
+</p>
+
+    </div>
+
+
+   </div>
+
+    <div id="method-list">
+      <h3 class="section-bar">Methods</h3>
+
+      <div class="name-list">
+      <a href="#M000496">new</a>&nbsp;&nbsp;
+      <a href="#M000497">run</a>&nbsp;&nbsp;
+      </div>
+    </div>
+
+  </div>
+
+
+    <!-- if includes -->
+    <div id="includes">
+      <h3 class="section-bar">Included Modules</h3>
+
+      <div id="includes-list">
+        <span class="include-name"><a href="Translatable.html">Translatable</a></span>
+      </div>
+    </div>
+
+    <div id="section">
+
+
+
+
+
+      
+
+
+    <!-- if method_list -->
+    <div id="methods">
+      <h3 class="section-bar">Public Class methods</h3>
+
+      <div id="method-M000496" class="method-detail">
+        <a name="M000496"></a>
+
+        <div class="method-heading">
+          <a href="#M000496" class="method-signature">
+          <span class="method-name">new</span><span class="method-args">(configfile)</span>
+          </a>
+        </div>
+      
+        <div class="method-description">
+          <p><a class="source-toggle" href="#"
+            onclick="toggleCode('M000496-source');return false;">[Source]</a></p>
+          <div class="method-source-code" id="M000496-source">
+<pre>
+    <span class="ruby-comment cmt"># File lib/mcollective/runner.rb, line 8</span>
+ 8:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">configfile</span>)
+ 9:       <span class="ruby-ivar">@config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">instance</span>
+10:       <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">loadconfig</span>(<span class="ruby-identifier">configfile</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">configured</span>
+11:       <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">mode</span> = <span class="ruby-identifier">:server</span>
+12: 
+13:       <span class="ruby-ivar">@stats</span> = <span class="ruby-constant">PluginManager</span>[<span class="ruby-value str">&quot;global_stats&quot;</span>]
+14: 
+15:       <span class="ruby-ivar">@security</span> = <span class="ruby-constant">PluginManager</span>[<span class="ruby-value str">&quot;security_plugin&quot;</span>]
+16:       <span class="ruby-ivar">@security</span>.<span class="ruby-identifier">initiated_by</span> = <span class="ruby-identifier">:node</span>
+17: 
+18:       <span class="ruby-ivar">@connection</span> = <span class="ruby-constant">PluginManager</span>[<span class="ruby-value str">&quot;connector_plugin&quot;</span>]
+19:       <span class="ruby-ivar">@connection</span>.<span class="ruby-identifier">connect</span>
+20: 
+21:       <span class="ruby-ivar">@agents</span> = <span class="ruby-constant">Agents</span>.<span class="ruby-identifier">new</span>
+22: 
+23:       <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">Util</span>.<span class="ruby-identifier">windows?</span>
+24:         <span class="ruby-constant">Signal</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">&quot;USR1&quot;</span>) <span class="ruby-keyword kw">do</span>
+25:           <span class="ruby-identifier">log_code</span>(<span class="ruby-identifier">:PLMC2</span>, <span class="ruby-value str">&quot;Reloading all agents after receiving USR1 signal&quot;</span>, <span class="ruby-identifier">:info</span>)
+26:           <span class="ruby-ivar">@agents</span>.<span class="ruby-identifier">loadagents</span>
+27:         <span class="ruby-keyword kw">end</span>
+28: 
+29:         <span class="ruby-constant">Signal</span>.<span class="ruby-identifier">trap</span>(<span class="ruby-value str">&quot;USR2&quot;</span>) <span class="ruby-keyword kw">do</span>
+30:           <span class="ruby-identifier">log_code</span>(<span class="ruby-identifier">:PLMC3</span>, <span class="ruby-value str">&quot;Cycling logging level due to USR2 signal&quot;</span>, <span class="ruby-identifier">:info</span>)
+31: 
+32:           <span class="ruby-constant">Log</span>.<span class="ruby-identifier">cycle_level</span>
+33:         <span class="ruby-keyword kw">end</span>
+34:       <span class="ruby-keyword kw">else</span>
+35:         <span class="ruby-constant">Util</span>.<span class="ruby-identifier">setup_windows_sleeper</span>
+36:       <span class="ruby-keyword kw">end</span>
+37:     <span class="ruby-keyword kw">end</span>
+</pre>
+          </div>
+        </div>
+      </div>
+
+      <h3 class="section-bar">Public Instance methods</h3>
+
+      <div id="method-M000497" class="method-detail">
+        <a name="M000497"></a>
+
+        <div class="method-heading">
+          <a href="#M000497" class="method-signature">
+          <span class="method-name">run</span><span class="method-args">()</span>
+          </a>
+        </div>
+      
+        <div class="method-description">
+          <p>
+Starts the main loop, before calling this you should initialize the <a
+href="Config.html">MCollective::Config</a> singleton.
+</p>
+          <p><a class="source-toggle" href="#"
+            onclick="toggleCode('M000497-source');return false;">[Source]</a></p>
+          <div class="method-source-code" id="M000497-source">
+<pre>
+    <span class="ruby-comment cmt"># File lib/mcollective/runner.rb, line 40</span>
+40:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">run</span>
+41:       <span class="ruby-constant">Data</span>.<span class="ruby-identifier">load_data_sources</span>
+42: 
+43:       <span class="ruby-constant">Util</span>.<span class="ruby-identifier">subscribe</span>(<span class="ruby-constant">Util</span>.<span class="ruby-identifier">make_subscriptions</span>(<span class="ruby-value str">&quot;mcollective&quot;</span>, <span class="ruby-identifier">:broadcast</span>))
+44:       <span class="ruby-constant">Util</span>.<span class="ruby-identifier">subscribe</span>(<span class="ruby-constant">Util</span>.<span class="ruby-identifier">make_subscriptions</span>(<span class="ruby-value str">&quot;mcollective&quot;</span>, <span class="ruby-identifier">:directed</span>)) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">direct_addressing</span>
+45: 
+46:       <span class="ruby-comment cmt"># Start the registration plugin if interval isn't 0</span>
+47:       <span class="ruby-keyword kw">begin</span>
+48:         <span class="ruby-constant">PluginManager</span>[<span class="ruby-value str">&quot;registration_plugin&quot;</span>].<span class="ruby-identifier">run</span>(<span class="ruby-ivar">@connection</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@config</span>.<span class="ruby-identifier">registerinterval</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
+49:       <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>
+50:         <span class="ruby-identifier">logexception</span>(<span class="ruby-identifier">:PLMC4</span>, <span class="ruby-value str">&quot;Failed to start registration plugin: %{error}&quot;</span>, <span class="ruby-identifier">:error</span>, <span class="ruby-identifier">e</span>)
+51:       <span class="ruby-keyword kw">end</span>
+52: 
+53:       <span class="ruby-identifier">loop</span> <span class="ruby-keyword kw">do</span>
+54:         <span class="ruby-keyword kw">begin</span>
+55:           <span class="ruby-identifier">request</span> = <span class="ruby-identifier">receive</span>
+56: 
+57:           <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">request</span>.<span class="ruby-identifier">agent</span> <span class="ruby-operator">==</span> <span class="ruby-value str">&quot;mcollective&quot;</span>
+58:             <span class="ruby-identifier">agentmsg</span>(<span class="ruby-identifier">request</span>)
+59:           <span class="ruby-keyword kw">else</span>
+60:             <span class="ruby-identifier">log_code</span>(<span class="ruby-identifier">:PLMC5</span>, <span class="ruby-value str">&quot;Received a control message, possibly via 'mco controller' but this has been deprecated&quot;</span>, <span class="ruby-identifier">:error</span>)
+61:           <span class="ruby-keyword kw">end</span>
+62:         <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">SignalException</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+63:           <span class="ruby-identifier">logexception</span>(<span class="ruby-identifier">:PLMC7</span>, <span class="ruby-value str">&quot;Exiting after signal: %{error}&quot;</span>, <span class="ruby-identifier">:warn</span>, <span class="ruby-identifier">e</span>)
+64:           <span class="ruby-ivar">@connection</span>.<span class="ruby-identifier">disconnect</span>
+65:           <span class="ruby-identifier">raise</span>
+66: 
+67:         <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">MsgTTLExpired</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+68:           <span class="ruby-identifier">logexception</span>(<span class="ruby-identifier">:PLMC9</span>, <span class="ruby-value str">&quot;Expired Message: %{error}&quot;</span>, <span class="ruby-identifier">:warn</span>, <span class="ruby-identifier">e</span>)
+69: 
+70:         <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">NotTargettedAtUs</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
+71:           <span class="ruby-identifier">log_code</span>(<span class="ruby-identifier">:PLMC6</span>, <span class="ruby-value str">&quot;Message does not pass filters, ignoring&quot;</span>, <span class="ruby-identifier">:debug</span>)
+72: 
+73:         <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>
+74:           <span class="ruby-identifier">logexception</span>(<span class="ruby-identifier">:PLMC10</span>, <span class="ruby-value str">&quot;Failed to handle message: %{error}&quot;</span>, <span class="ruby-identifier">:warn</span>, <span class="ruby-identifier">e</span>, <span class="ruby-keyword kw">true</span>)
+75:         <span class="ruby-keyword kw">end</span>
+76:       <span class="ruby-keyword kw">end</span>
+77:     <span class="ruby-keyword kw">end</span>
+</pre>
+          </div>
+        </div>
+      </div>
+
+
+    </div>
+
+
+  </div>
+
+
+<div id="validator-badges">
+  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
+</div>
+
+</body>
+</html>
\ No newline at end of file