+++ /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