--- /dev/null
+<?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>Module: MCollective::Data</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>Module</strong></td>
+ <td class="class-name-in-header">MCollective::Data</td>
+ </tr>
+ <tr class="top-aligned-row">
+ <td><strong>In:</strong></td>
+ <td>
+ <a href="../../files/lib/mcollective/data/base_rb.html">
+ lib/mcollective/data/base.rb
+ </a>
+ <br />
+ <a href="../../files/lib/mcollective/data/result_rb.html">
+ lib/mcollective/data/result.rb
+ </a>
+ <br />
+ <a href="../../files/lib/mcollective/data_rb.html">
+ lib/mcollective/data.rb
+ </a>
+ <br />
+ </td>
+ </tr>
+
+ </table>
+ </div>
+ <!-- banner header -->
+
+ <div id="bodyContent">
+
+
+
+ <div id="contextContent">
+
+
+
+ </div>
+
+ <div id="method-list">
+ <h3 class="section-bar">Methods</h3>
+
+ <div class="name-list">
+ <a href="#M000225">[]</a>
+ <a href="#M000227">ddl</a>
+ <a href="#M000229">ddl_has_output?</a>
+ <a href="#M000230">ddl_transform_input</a>
+ <a href="#M000228">ddl_validate</a>
+ <a href="#M000223">load_data_sources</a>
+ <a href="#M000226">method_missing</a>
+ <a href="#M000224">pluginname</a>
+ </div>
+ </div>
+
+ </div>
+
+
+ <!-- if includes -->
+
+ <div id="section">
+
+ <div id="class-list">
+ <h3 class="section-bar">Classes and Modules</h3>
+
+ Class <a href="Data/Base.html" class="link">MCollective::Data::Base</a><br />
+Class <a href="Data/Result.html" class="link">MCollective::Data::Result</a><br />
+
+ </div>
+
+
+
+
+
+
+
+ <!-- if method_list -->
+ <div id="methods">
+ <h3 class="section-bar">Public Class methods</h3>
+
+ <div id="method-M000225" class="method-detail">
+ <a name="M000225"></a>
+
+ <div class="method-heading">
+ <a href="#M000225" class="method-signature">
+ <span class="method-name">[]</span><span class="method-args">(plugin)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000225-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000225-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 26</span>
+26: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-operator">[]</span>(<span class="ruby-identifier">plugin</span>)
+27: <span class="ruby-constant">PluginManager</span>[<span class="ruby-identifier">pluginname</span>(<span class="ruby-identifier">plugin</span>)]
+28: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000227" class="method-detail">
+ <a name="M000227"></a>
+
+ <div class="method-heading">
+ <a href="#M000227" class="method-signature">
+ <span class="method-name">ddl</span><span class="method-args">(plugin)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000227-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000227-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 37</span>
+37: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ddl</span>(<span class="ruby-identifier">plugin</span>)
+38: <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">pluginname</span>(<span class="ruby-identifier">plugin</span>), <span class="ruby-identifier">:data</span>)
+39: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000229" class="method-detail">
+ <a name="M000229"></a>
+
+ <div class="method-heading">
+ <a href="#M000229" class="method-signature">
+ <span class="method-name">ddl_has_output?</span><span class="method-args">(ddl, output)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000229-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000229-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 62</span>
+62: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ddl_has_output?</span>(<span class="ruby-identifier">ddl</span>, <span class="ruby-identifier">output</span>)
+63: <span class="ruby-identifier">ddl</span>.<span class="ruby-identifier">entities</span>[<span class="ruby-identifier">:data</span>][<span class="ruby-identifier">:output</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">output</span>.<span class="ruby-identifier">to_sym</span>) <span class="ruby-keyword kw">rescue</span> <span class="ruby-keyword kw">false</span>
+64: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000230" class="method-detail">
+ <a name="M000230"></a>
+
+ <div class="method-heading">
+ <a href="#M000230" class="method-signature">
+ <span class="method-name">ddl_transform_input</span><span class="method-args">(ddl, input)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p>
+For an input where the <a href="DDL.html">DDL</a> requests a boolean or
+some number this will convert the input to the right type where possible
+else just returns the origin input unedited
+</p>
+<p>
+if anything here goes wrong just return the input value this is not really
+the end of the world or anything since all that will happen is that <a
+href="DDL.html">DDL</a> validation will fail and the user will get an
+error, no need to be too defensive here
+</p>
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000230-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000230-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 74</span>
+74: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ddl_transform_input</span>(<span class="ruby-identifier">ddl</span>, <span class="ruby-identifier">input</span>)
+75: <span class="ruby-keyword kw">begin</span>
+76: <span class="ruby-identifier">type</span> = <span class="ruby-identifier">ddl</span>.<span class="ruby-identifier">entities</span>[<span class="ruby-identifier">:data</span>][<span class="ruby-identifier">:input</span>][<span class="ruby-identifier">:query</span>][<span class="ruby-identifier">:type</span>]
+77:
+78: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">type</span>
+79: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:boolean</span>
+80: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">string_to_boolean</span>(<span class="ruby-identifier">input</span>)
+81:
+82: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">:number</span>, <span class="ruby-identifier">:integer</span>, <span class="ruby-identifier">:float</span>
+83: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">string_to_number</span>(<span class="ruby-identifier">input</span>)
+84: <span class="ruby-keyword kw">end</span>
+85: <span class="ruby-keyword kw">rescue</span>
+86: <span class="ruby-keyword kw">end</span>
+87:
+88: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">input</span>
+89: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000228" class="method-detail">
+ <a name="M000228"></a>
+
+ <div class="method-heading">
+ <a href="#M000228" class="method-signature">
+ <span class="method-name">ddl_validate</span><span class="method-args">(ddl, argument)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000228-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000228-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 41</span>
+41: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">ddl_validate</span>(<span class="ruby-identifier">ddl</span>, <span class="ruby-identifier">argument</span>)
+42: <span class="ruby-identifier">name</span> = <span class="ruby-identifier">ddl</span>.<span class="ruby-identifier">meta</span>[<span class="ruby-identifier">:name</span>]
+43: <span class="ruby-identifier">query</span> = <span class="ruby-identifier">ddl</span>.<span class="ruby-identifier">entities</span>[<span class="ruby-identifier">:data</span>]
+44:
+45: <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">validation_fail!</span>(<span class="ruby-identifier">:PLMC31</span>, <span class="ruby-value str">"No dataquery has been defined in the DDL for data plugin '%{plugin}'"</span>, <span class="ruby-identifier">:error</span>, <span class="ruby-identifier">:plugin</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">query</span>
+46:
+47: <span class="ruby-identifier">input</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">:input</span>, {})
+48: <span class="ruby-identifier">output</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">fetch</span>(<span class="ruby-identifier">:output</span>, {})
+49:
+50: <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">validation_fail!</span>(<span class="ruby-identifier">:PLMC32</span>, <span class="ruby-value str">"No output has been defined in the DDL for data plugin %{plugin}"</span>, <span class="ruby-identifier">:error</span>, <span class="ruby-identifier">:plugin</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">output</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">empty?</span>
+51:
+52: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">input</span>[<span class="ruby-identifier">:query</span>]
+53: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">argument</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">input</span>[<span class="ruby-identifier">:query</span>][<span class="ruby-identifier">:optional</span>]
+54:
+55: <span class="ruby-identifier">ddl</span>.<span class="ruby-identifier">validate_input_argument</span>(<span class="ruby-identifier">input</span>, <span class="ruby-identifier">:query</span>, <span class="ruby-identifier">argument</span>)
+56: <span class="ruby-keyword kw">else</span>
+57: <span class="ruby-constant">DDL</span>.<span class="ruby-identifier">validation_fail!</span>(<span class="ruby-identifier">:PLMC33</span>, <span class="ruby-value str">"No data plugin argument was declared in the '%{plugin}' DDL but an input was supplied"</span>, <span class="ruby-identifier">:error</span>, <span class="ruby-identifier">:plugin</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">name</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">argument</span>
+58: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
+59: <span class="ruby-keyword kw">end</span>
+60: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000223" class="method-detail">
+ <a name="M000223"></a>
+
+ <div class="method-heading">
+ <a href="#M000223" class="method-signature">
+ <span class="method-name">load_data_sources</span><span class="method-args">()</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000223-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000223-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 6</span>
+ 6: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">load_data_sources</span>
+ 7: <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">find_and_load</span>(<span class="ruby-value str">"data"</span>)
+ 8:
+ 9: <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">grep</span>(<span class="ruby-regexp re">/_data$/</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">plugin</span><span class="ruby-operator">|</span>
+10: <span class="ruby-keyword kw">begin</span>
+11: <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">PluginManager</span>[<span class="ruby-identifier">plugin</span>].<span class="ruby-identifier">class</span>.<span class="ruby-identifier">activate?</span>
+12: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">"Disabling data plugin %s due to plugin activation policy"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">plugin</span>)
+13: <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">plugin</span>)
+14: <span class="ruby-keyword kw">end</span>
+15: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">e</span>
+16: <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">"Disabling data plugin %s due to exception #{e.class}: #{e}"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">plugin</span>)
+17: <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">plugin</span>)
+18: <span class="ruby-keyword kw">end</span>
+19: <span class="ruby-keyword kw">end</span>
+20: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000226" class="method-detail">
+ <a name="M000226"></a>
+
+ <div class="method-heading">
+ <a href="#M000226" class="method-signature">
+ <span class="method-name">method_missing</span><span class="method-args">(method, *args)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p>
+Data.package("httpd").architecture
+</p>
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000226-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000226-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 31</span>
+31: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">method</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
+32: <span class="ruby-keyword kw">super</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">PluginManager</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">pluginname</span>(<span class="ruby-identifier">method</span>))
+33:
+34: <span class="ruby-constant">PluginManager</span>[<span class="ruby-identifier">pluginname</span>(<span class="ruby-identifier">method</span>)].<span class="ruby-identifier">lookup</span>(<span class="ruby-identifier">args</span>.<span class="ruby-identifier">first</span>)
+35: <span class="ruby-keyword kw">end</span>
+</pre>
+ </div>
+ </div>
+ </div>
+
+ <div id="method-M000224" class="method-detail">
+ <a name="M000224"></a>
+
+ <div class="method-heading">
+ <a href="#M000224" class="method-signature">
+ <span class="method-name">pluginname</span><span class="method-args">(plugin)</span>
+ </a>
+ </div>
+
+ <div class="method-description">
+ <p><a class="source-toggle" href="#"
+ onclick="toggleCode('M000224-source');return false;">[Source]</a></p>
+ <div class="method-source-code" id="M000224-source">
+<pre>
+ <span class="ruby-comment cmt"># File lib/mcollective/data.rb, line 22</span>
+22: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">pluginname</span>(<span class="ruby-identifier">plugin</span>)
+23: <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/_data$/i</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span> <span class="ruby-operator">:</span> <span class="ruby-value str">"%s_data"</span> <span class="ruby-operator">%</span> <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">downcase</span>
+24: <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