mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-05-08 02:01:31 -07:00
Let me upgrade your docs
This commit is contained in:
parent
7e0ff815b9
commit
5e453555e3
80 changed files with 11378 additions and 67 deletions
95
html/_modules/index.html
Normal file
95
html/_modules/index.html
Normal file
|
@ -0,0 +1,95 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>Overview: module code — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>All modules for which code is available</h1>
|
||||
<ul><li><a href="taboot/output.html">taboot.output</a></li>
|
||||
<li><a href="taboot/runner.html">taboot.runner</a></li>
|
||||
<li><a href="taboot/tasks.html">taboot.tasks</a></li>
|
||||
<ul><li><a href="taboot/tasks/command.html">taboot.tasks.command</a></li>
|
||||
<li><a href="taboot/tasks/mod_jk.html">taboot.tasks.mod_jk</a></li>
|
||||
<li><a href="taboot/tasks/nagios.html">taboot.tasks.nagios</a></li>
|
||||
<li><a href="taboot/tasks/poller.html">taboot.tasks.poller</a></li>
|
||||
<li><a href="taboot/tasks/puppet.html">taboot.tasks.puppet</a></li>
|
||||
<li><a href="taboot/tasks/rpm.html">taboot.tasks.rpm</a></li>
|
||||
<li><a href="taboot/tasks/service.html">taboot.tasks.service</a></li>
|
||||
<li><a href="taboot/tasks/sleep.html">taboot.tasks.sleep</a></li>
|
||||
<li><a href="taboot/tasks/yum.html">taboot.tasks.yum</a></li>
|
||||
</ul></ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
618
html/_modules/taboot/output.html
Normal file
618
html/_modules/taboot/output.html
Normal file
|
@ -0,0 +1,618 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.output — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../index.html" />
|
||||
<link rel="up" title="Module code" href="../index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../index.html" accesskey="U">Module code</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.output</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009,2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks.puppet</span> <span class="kn">import</span> <span class="n">PuppetTaskResult</span>
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks.rpm</span> <span class="kn">import</span> <span class="n">RPMTaskResult</span>
|
||||
<span class="kn">import</span> <span class="nn">re</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">_FileLikeOutputObject</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> A file-like parent class.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">exceptions</span>
|
||||
<span class="kn">import</span> <span class="nn">time</span> <span class="kn">as</span> <span class="nn">_time</span>
|
||||
<span class="n">defaults</span> <span class="o">=</span> <span class="bp">None</span>
|
||||
<span class="n">starttime</span> <span class="o">=</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Creates an instance of a file-like object.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `args`: all non-keyword arguments.</span>
|
||||
<span class="sd"> - `kwargs`: all keyword arguments.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">ConfigParser</span>
|
||||
<span class="kn">import</span> <span class="nn">os.path</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">_FileLikeOutputObject</span><span class="o">.</span><span class="n">defaults</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s">"~/.taboot.conf"</span><span class="p">):</span>
|
||||
<span class="n">_FileLikeOutputObject</span><span class="o">.</span><span class="n">defaults</span> <span class="o">=</span> <span class="n">ConfigParser</span><span class="o">.</span><span class="n">ConfigParser</span><span class="p">()</span>
|
||||
<span class="n">_FileLikeOutputObject</span><span class="o">.</span><span class="n">defaults</span><span class="o">.</span><span class="n">read</span><span class="p">(</span>
|
||||
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s">"~/.taboot.conf"</span><span class="p">))</span>
|
||||
|
||||
<span class="c"># Only set the start time once, not for each logger instance</span>
|
||||
<span class="k">if</span> <span class="n">_FileLikeOutputObject</span><span class="o">.</span><span class="n">starttime</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
|
||||
<span class="kn">import</span> <span class="nn">datetime</span>
|
||||
<span class="n">_FileLikeOutputObject</span><span class="o">.</span><span class="n">starttime</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="o">.</span><span class="n">today</span><span class="p">()</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_pos</span> <span class="o">=</span> <span class="il">0L</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_closed</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_setup</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation specific setup.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `args`: all non-keyword arguments.</span>
|
||||
<span class="sd"> - `kwargs`: all keyword arguments.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> We are not buffering so we always just return None.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">read</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> We are an output only file-like object. Raise exception.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `args`: all non-keyword arguments.</span>
|
||||
<span class="sd"> - `kwargs`: all keyword arguments.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">raise</span> <span class="bp">self</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">NotImplementedError</span><span class="p">(</span><span class="s">'Object for output only.'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">tell</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Returns the position of the file-like object.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_pos</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">truncate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> We are an output only file-like object. Raise exception.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `size`: size to truncate to.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">raise</span> <span class="bp">self</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">NotImplementedError</span><span class="p">(</span>
|
||||
<span class="s">'This does not support truncate.'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">writelines</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Writes a sequence of lines.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `sequence`: iterable sequence of data to write.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">for</span> <span class="n">item</span> <span class="ow">in</span> <span class="n">sequence</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Writer wrapper (not rapper, beav). Simply calls _write which is</span>
|
||||
<span class="sd"> implementation specific and updates the position.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `item`: the item to write.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_write</span><span class="p">(</span><span class="n">item</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_pos</span> <span class="o">+=</span> <span class="mi">1</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation of writing data.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `item`: the item to write.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">raise</span> <span class="bp">self</span><span class="o">.</span><span class="n">exceptions</span><span class="o">.</span><span class="n">NotImplementedError</span><span class="p">(</span>
|
||||
<span class="s">'_write must be overriden.'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Close wrapper (again, not rapper, beav). Simply calls _close which</span>
|
||||
<span class="sd"> is implementation specific and updates the closed property.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_close</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_closed</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_close</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation of closing the file-like object.</span>
|
||||
<span class="sd"> By default nothing occurs.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
<span class="c"># Read aliases</span>
|
||||
<span class="n">readline</span> <span class="o">=</span> <span class="n">read</span>
|
||||
<span class="n">readlines</span> <span class="o">=</span> <span class="n">read</span>
|
||||
<span class="n">xreadlines</span> <span class="o">=</span> <span class="n">read</span>
|
||||
<span class="n">seek</span> <span class="o">=</span> <span class="n">read</span>
|
||||
|
||||
<span class="c"># Read-only Properties</span>
|
||||
<span class="n">closed</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_closed</span><span class="p">)</span>
|
||||
<span class="n">timestamp</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_time</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span>
|
||||
<span class="s">"%Y-%m-</span><span class="si">%d</span><span class="s"> %H:%M:%S"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_time</span><span class="o">.</span><span class="n">localtime</span><span class="p">()))</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="CLIOutput"><a class="viewcode-back" href="../../code.html#taboot.output.CLIOutput">[docs]</a><span class="k">class</span> <span class="nc">CLIOutput</span><span class="p">(</span><span class="n">_FileLikeOutputObject</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Output a :class:`taboot.tasks.TaskResult` to the command line</span>
|
||||
<span class="sd"> with pretty formatting and colors.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">task</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation specific setup for outputting to the CLI.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `host`: name of the host</span>
|
||||
<span class="sd"> - `task`: name of the task</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">Colors</span>
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span> <span class="o">=</span> <span class="n">Colors</span><span class="o">.</span><span class="n">Colors</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span> <span class="o">=</span> <span class="n">sys</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="s">'blue'</span><span class="p">)))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s"> Starting Task[</span><span class="si">%s</span><span class="s">]</span><span class="se">\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">task</span><span class="p">,</span> <span class="s">'white'</span><span class="p">)))</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation of writing to the CLI.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `result`: result object to inspect and write</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">types</span>
|
||||
|
||||
<span class="c"># Set output color</span>
|
||||
<span class="n">output_color</span> <span class="o">=</span> <span class="s">'red'</span>
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">:</span>
|
||||
<span class="n">output_color</span> <span class="o">=</span> <span class="s">'green'</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="s">'blue'</span><span class="p">)))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"> Finished Task[</span><span class="si">%s</span><span class="s">]:</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">task</span><span class="p">,</span> <span class="n">output_color</span><span class="p">)))</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">PuppetTaskResult</span><span class="p">):</span>
|
||||
<span class="c"># If result is an instance of PuppetTaskResult,</span>
|
||||
<span class="c"># colorize the puppet output</span>
|
||||
<span class="n">lines</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
|
||||
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'info:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'green'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'notice:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'blue'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'warning:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'yellow'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'err:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'red'</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'normal'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">RPMTaskResult</span><span class="p">):</span>
|
||||
<span class="c"># If result is an instance of RPMTaskResult,</span>
|
||||
<span class="c"># colorize the rpm.PostManifest output</span>
|
||||
<span class="n">lines</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
|
||||
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'-'</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'red'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'+'</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'green'</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="s">'normal'</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c"># Use standard pass/fall coloring for output</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">ListType</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">r</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">output_color</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sys</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span> <span class="n">output_color</span><span class="p">))</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="LogOutput"><a class="viewcode-back" href="../../code.html#taboot.output.LogOutput">[docs]</a><span class="k">class</span> <span class="nc">LogOutput</span><span class="p">(</span><span class="n">_FileLikeOutputObject</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Output a :class:`taboot.tasks.TaskResult` to a logfile.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">task</span><span class="p">,</span> <span class="n">logfile</span><span class="o">=</span><span class="s">'taboot.log'</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation specific setup for outputting to a log.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `logfile`: name of the logfile to write to.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_logfile</span> <span class="o">=</span> <span class="n">logfile</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_logfile</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'-'</span><span class="p">,</span> <span class="s">'stdout'</span><span class="p">,</span> <span class="s">'1'</span><span class="p">):</span>
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdout</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">logfile</span><span class="p">,</span> <span class="s">'a'</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">'</span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="si">%s</span><span class="s"> Starting Task[</span><span class="si">%s</span><span class="s">]</span><span class="se">\n\n</span><span class="s">'</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span> <span class="n">task</span><span class="p">))</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation of writing to a log.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `result`: result object to inspect and write</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">types</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">:</span>
|
||||
<span class="n">success_str</span> <span class="o">=</span> <span class="s">'OK'</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">success_str</span> <span class="o">=</span> <span class="s">'FAIL'</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="si">%s</span><span class="s"> Finished Task[</span><span class="si">%s</span><span class="s">]: </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">task</span><span class="p">,</span> <span class="n">success_str</span><span class="p">))</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">ListType</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">r</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="se">\n\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="EmailOutput"><a class="viewcode-back" href="../../code.html#taboot.output.EmailOutput">[docs]</a><span class="k">class</span> <span class="nc">EmailOutput</span><span class="p">(</span><span class="n">_FileLikeOutputObject</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Output a :class:`taboot.tasks.TaskResult` to a logfile.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">to_addr</span><span class="p">,</span> <span class="n">from_addr</span><span class="o">=</span><span class="s">'taboot@redhat.com'</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation specific setup for outputting to a log.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `to_addr`: who to send the email to.</span>
|
||||
<span class="sd"> - `from_addr`: who the email is from.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="kn">import</span> <span class="nn">cStringIO</span> <span class="kn">as</span> <span class="nn">StringIO</span>
|
||||
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">,</span> <span class="n">ie</span><span class="p">:</span>
|
||||
<span class="kn">import</span> <span class="nn">StringIO</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_to_addr</span> <span class="o">=</span> <span class="n">to_addr</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_from_addr</span> <span class="o">=</span> <span class="n">from_addr</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_buffer</span> <span class="o">=</span> <span class="n">StringIO</span><span class="o">.</span><span class="n">StringIO</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation of writing out to an email.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `result`: result object to inspect and write</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">:</span>
|
||||
<span class="n">success_str</span> <span class="o">=</span> <span class="s">'OK'</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">success_str</span> <span class="o">=</span> <span class="s">'FAIL'</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_buffer</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">task_result</span><span class="o">.</span><span class="n">task</span><span class="p">,</span> <span class="n">success_str</span><span class="p">))</span>
|
||||
|
||||
<div class="viewcode-block" id="EmailOutput.flush"><a class="viewcode-back" href="../../code.html#taboot.output.EmailOutput.flush">[docs]</a> <span class="k">def</span> <span class="nf">flush</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Flushing sends the email with the buffer.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">smtplib</span>
|
||||
<span class="kn">from</span> <span class="nn">email.mime.text</span> <span class="kn">import</span> <span class="n">MIMEText</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_buffer</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
|
||||
<span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">MIMEText</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_buffer</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
|
||||
<span class="n">msg</span><span class="p">[</span><span class="s">'Subject'</span><span class="p">]</span> <span class="o">=</span> <span class="n">task_result</span><span class="o">.</span><span class="n">host</span>
|
||||
<span class="n">msg</span><span class="p">[</span><span class="s">'From'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_from_addr</span>
|
||||
<span class="n">msg</span><span class="p">[</span><span class="s">'To'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_to_addr</span>
|
||||
|
||||
<span class="n">smtp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">smtplib</span><span class="o">.</span><span class="n">SMTP</span><span class="p">()</span>
|
||||
<span class="n">smtp</span><span class="o">.</span><span class="n">connect</span><span class="p">()</span>
|
||||
<span class="n">smtp</span><span class="o">.</span><span class="n">sendmail</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_from_addr</span><span class="p">,</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_to_addr</span><span class="p">],</span> <span class="n">msg</span><span class="o">.</span><span class="n">as_string</span><span class="p">())</span>
|
||||
<span class="n">smtp</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||||
</div>
|
||||
<span class="k">def</span> <span class="nf">__del__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> If the buffer is not empty before destroying, flush.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_buffer</span><span class="o">.</span><span class="n">pos</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">_buffer</span><span class="o">.</span><span class="n">len</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="HTMLOutput"><a class="viewcode-back" href="../../code.html#taboot.output.HTMLOutput">[docs]</a><span class="k">class</span> <span class="nc">HTMLOutput</span><span class="p">(</span><span class="n">_FileLikeOutputObject</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Output a :class:`taboot.tasks.TaskResult` to the command line</span>
|
||||
<span class="sd"> with pretty formatting and colors.</span>
|
||||
|
||||
<span class="sd"> .. document private functions</span>
|
||||
<span class="sd"> .. automethod:: _write</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">logfile_path</span> <span class="o">=</span> <span class="bp">None</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_expand_starttime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">param</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Expand any instances of "%s" in `param`</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="s">'</span><span class="si">%s</span><span class="s">'</span> <span class="ow">in</span> <span class="n">param</span><span class="p">:</span>
|
||||
<span class="n">p</span> <span class="o">=</span> <span class="n">param</span> <span class="o">%</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">starttime</span>
|
||||
<span class="k">return</span> <span class="n">p</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">" "</span><span class="p">,</span> <span class="s">"-"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">param</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setup</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">task</span><span class="p">,</span> <span class="n">logfile</span><span class="o">=</span><span class="s">"taboot-</span><span class="si">%s</span><span class="s">.html"</span><span class="p">,</span> <span class="n">destdir</span><span class="o">=</span><span class="s">"."</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Implementation specific setup for outputting to an HTML file.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `host`: name of the host</span>
|
||||
<span class="sd"> - `task`: name of the task</span>
|
||||
<span class="sd"> - `logfile`: name of the file to log to, '%s' is substituted</span>
|
||||
<span class="sd"> with a datestamp</span>
|
||||
<span class="sd"> - `destdir`: directory in which to save the log file to</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">Colors</span>
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="kn">import</span> <span class="nn">os.path</span>
|
||||
<span class="kn">import</span> <span class="nn">os</span>
|
||||
|
||||
<span class="n">_default_logfile</span> <span class="o">=</span> <span class="s">"taboot-</span><span class="si">%s</span><span class="s">.html"</span>
|
||||
<span class="n">_default_destdir</span> <span class="o">=</span> <span class="s">"."</span>
|
||||
|
||||
<span class="c"># Pick if the parameter is changed</span>
|
||||
<span class="c"># Pick if above is false and logfile is set in defaults</span>
|
||||
<span class="c"># Else, use parameter</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">logfile</span> <span class="o">==</span> <span class="n">_default_logfile</span><span class="p">:</span>
|
||||
<span class="n">_logfile</span> <span class="o">=</span> <span class="n">logfile</span>
|
||||
<span class="k">elif</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">defaults</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> \
|
||||
<span class="n">HTMLOutput</span><span class="o">.</span><span class="n">defaults</span><span class="o">.</span><span class="n">has_option</span><span class="p">(</span><span class="s">"HTMLOutput"</span><span class="p">,</span> <span class="s">"logfile"</span><span class="p">):</span>
|
||||
<span class="n">_logfile</span> <span class="o">=</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">defaults</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"HTMLOutput"</span><span class="p">,</span> <span class="s">"logfile"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">_logfile</span> <span class="o">=</span> <span class="n">logfile</span>
|
||||
|
||||
<span class="c"># Expand %s into a time stamp if necessary</span>
|
||||
<span class="n">_logfile</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_expand_starttime</span><span class="p">(</span><span class="n">_logfile</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">destdir</span> <span class="o">==</span> <span class="n">_default_destdir</span><span class="p">:</span>
|
||||
<span class="n">_destdir</span> <span class="o">=</span> <span class="n">destdir</span>
|
||||
<span class="k">elif</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">defaults</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> \
|
||||
<span class="n">HTMLOutput</span><span class="o">.</span><span class="n">defaults</span><span class="o">.</span><span class="n">has_option</span><span class="p">(</span><span class="s">"HTMLOutput"</span><span class="p">,</span> <span class="s">"destdir"</span><span class="p">):</span>
|
||||
<span class="n">_destdir</span> <span class="o">=</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">defaults</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"HTMLOutput"</span><span class="p">,</span> <span class="s">"destdir"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">_destdir</span> <span class="o">=</span> <span class="n">destdir</span>
|
||||
|
||||
<span class="c"># Figured it all out, now we join them together!</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_logfile_path</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">_destdir</span><span class="p">,</span> <span class="n">_logfile</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">_destdir</span><span class="p">):</span>
|
||||
<span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">_destdir</span><span class="p">,</span> <span class="mo">0755</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span> <span class="o">=</span> <span class="n">Colors</span><span class="o">.</span><span class="n">HTMLColors</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_logfile_path</span><span class="p">,</span> <span class="s">'a'</span><span class="p">)</span>
|
||||
|
||||
<span class="c"># Lets only print this when it is set or changed</span>
|
||||
<span class="k">if</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">logfile_path</span> <span class="ow">is</span> <span class="bp">None</span> <span class="ow">or</span> \
|
||||
<span class="ow">not</span> <span class="n">HTMLOutput</span><span class="o">.</span><span class="n">logfile_path</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_logfile_path</span><span class="p">:</span>
|
||||
<span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"Logging HTML Output to </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> \
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_logfile_path</span><span class="p">)</span>
|
||||
<span class="n">HTMLOutput</span><span class="o">.</span><span class="n">logfile_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_logfile_path</span>
|
||||
<span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
|
||||
|
||||
<span class="c"># Log the start of this task</span>
|
||||
<span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fmt_anchor</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_fmt_hostname</span><span class="p">(</span><span class="n">host</span><span class="p">))</span>
|
||||
<span class="n">start_msg</span> <span class="o">=</span> <span class="s">"""<p><tt></span><span class="si">%s</span><span class="s">:</tt></p></span>
|
||||
<span class="s"><p><tt></span><span class="si">%s</span><span class="s"> Starting Task[</span><span class="si">%s</span><span class="s">]</span><span class="se">\n</span><span class="s"></tt>"""</span> <span class="o">%</span> <span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span> <span class="n">task</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">start_msg</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_fmt_anchor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">text</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Format an #anchor and a clickable link to it</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">h</span> <span class="o">=</span> <span class="nb">hash</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">)</span>
|
||||
<span class="n">anchor_str</span> <span class="o">=</span> <span class="s">"<a name='</span><span class="si">%s</span><span class="s">' href='#</span><span class="si">%s</span><span class="s">'></span><span class="si">%s</span><span class="s"></a>"</span> <span class="o">%</span> <span class="p">(</span><span class="n">h</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">anchor_str</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_fmt_hostname</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Standardize the hostname formatting</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">return</span> <span class="s">"<b></span><span class="si">%s</span><span class="s"></b>"</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="s">'blue'</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="HTMLOutput._write"><a class="viewcode-back" href="../../code.html#taboot.output.HTMLOutput._write">[docs]</a> <span class="k">def</span> <span class="nf">_write</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Write a tasks `result` out to HTML. Handles enhanced stylizing</span>
|
||||
<span class="sd"> for task results that support such as:</span>
|
||||
|
||||
<span class="sd"> - :py:mod:`taboot.tasks.puppet.PuppetTaskResult`</span>
|
||||
<span class="sd"> - :py:mod:`taboot.tasks.rpm.RPMTaskResult`</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">types</span>
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
<span class="kn">import</span> <span class="nn">cgi</span>
|
||||
|
||||
<span class="n">name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fmt_hostname</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">host</span><span class="p">)</span>
|
||||
|
||||
<span class="c"># escape any html in result.output</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">cgi</span><span class="o">.</span><span class="n">escape</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">:</span>
|
||||
<span class="n">success_str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="s">'<b>OK</b>'</span><span class="p">,</span> <span class="s">'green'</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">success_str</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="s">'<b>FAIL</b>'</span><span class="p">,</span> <span class="s">'red'</span><span class="p">)</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"<p><tt></span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="s"></tt></p></span><span class="se">\n</span><span class="s"><p><tt></span><span class="si">%s</span><span class="s"> "</span>\
|
||||
<span class="s">"Finished Task[</span><span class="si">%s</span><span class="s">]: </span><span class="si">%s</span><span class="s"></tt></p></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">timestamp</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">task</span><span class="p">,</span> <span class="n">success_str</span><span class="p">))</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">PuppetTaskResult</span><span class="p">):</span>
|
||||
<span class="c"># If result is an instance of PuppetTaskResult,</span>
|
||||
<span class="c"># colorize the puppet output</span>
|
||||
<span class="n">lines</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
|
||||
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'info:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'green'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'notice:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'blue'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'warning:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'yellow'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="s">'err:'</span><span class="p">,</span> <span class="n">line</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'red'</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'normal'</span><span class="p">))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"<br /><br /></span><span class="se">\n</span><span class="s">"</span><span class="p">)</span>
|
||||
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="p">,</span> <span class="n">RPMTaskResult</span><span class="p">):</span>
|
||||
<span class="c"># If result is an instance of RPMTaskResult,</span>
|
||||
<span class="c"># colorize the rpm.PostManifest output</span>
|
||||
<span class="n">lines</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">()</span>
|
||||
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'-'</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'red'</span><span class="p">))</span>
|
||||
<span class="k">elif</span> <span class="n">line</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">'+'</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'green'</span><span class="p">))</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"</span><span class="si">%s</span><span class="s"><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_c</span><span class="o">.</span><span class="n">format_string</span><span class="p">(</span><span class="n">line</span><span class="o">.</span><span class="n">strip</span><span class="p">(),</span>
|
||||
<span class="s">'normal'</span><span class="p">))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"<br /><br /></span><span class="se">\n</span><span class="s">"</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c"># Use standard pass/fall coloring for output</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">ListType</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"<pre></span><span class="si">%s</span><span class="s"></pre></span><span class="se">\n</span><span class="s"><br /><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="n">r</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">"<pre></span><span class="si">%s</span><span class="s"></pre></span><span class="se">\n</span><span class="s"><br /><br /></span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_log_fd</span><span class="o">.</span><span class="n">flush</span><span class="p">()</span></div></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../index.html" >Module code</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
369
html/_modules/taboot/runner.html
Normal file
369
html/_modules/taboot/runner.html
Normal file
|
@ -0,0 +1,369 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.runner — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../index.html" />
|
||||
<link rel="up" title="Module code" href="../index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../index.html" accesskey="U">Module code</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.runner</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009-2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">threading</span>
|
||||
<span class="kn">from</span> <span class="nn">taboot.util</span> <span class="kn">import</span> <span class="n">instantiator</span>
|
||||
<span class="kn">from</span> <span class="nn">log</span> <span class="kn">import</span> <span class="o">*</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="Runner"><a class="viewcode-back" href="../../code.html#taboot.runner.Runner">[docs]</a><span class="k">class</span> <span class="nc">Runner</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> The Runner, responsible for running a taboot job.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">threading</span>
|
||||
<span class="kn">import</span> <span class="nn">taboot.output</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">script</span><span class="p">,</span> <span class="n">config</span><span class="p">,</span> <span class="n">expand_globs</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `script`: an instance of tabootScript</span>
|
||||
|
||||
<span class="sd"> - `expand_globs`: whether to expand the globs or just leave</span>
|
||||
<span class="sd"> them as is.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_config</span> <span class="o">=</span> <span class="n">config</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">getHosts</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_tasks</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">getTaskTypes</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_output</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">getOutputTypes</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_task_q</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">threading</span><span class="o">.</span><span class="n">Event</span><span class="p">()</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">expand_globs</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_expand_globs</span><span class="p">()</span>
|
||||
<span class="n">log_debug</span><span class="p">(</span><span class="s">"Will operate on </span><span class="si">%s</span><span class="s"> host(s)."</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">))</span>
|
||||
|
||||
<span class="c"># Prefight threading</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_preflight_tasks</span> <span class="o">=</span> <span class="n">script</span><span class="o">.</span><span class="n">getPreflightTypes</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_preflight_semaphore</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">threading</span><span class="o">.</span><span class="n">Semaphore</span><span class="p">(</span>
|
||||
<span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">))</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_preflight_tasks_q</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="c"># Main task-body threading</span>
|
||||
<span class="k">if</span> <span class="n">script</span><span class="o">.</span><span class="n">getConcurrency</span><span class="p">()</span> <span class="o">==</span> <span class="s">"all"</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_concurrency</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_concurrency</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">script</span><span class="o">.</span><span class="n">getConcurrency</span><span class="p">())</span>
|
||||
<span class="n">log_debug</span><span class="p">(</span><span class="s">"Setting task-body concurrency to </span><span class="si">%s</span><span class="s">."</span><span class="p">,</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_concurrency</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">threading</span><span class="o">.</span><span class="n">Semaphore</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_concurrency</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_run_preflight</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run the jobs in a prefilght section.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">signal</span>
|
||||
|
||||
<span class="n">rdy_msg</span> <span class="o">=</span> <span class="s">"</span><span class="se">\n</span><span class="s">Pre-Flight complete, press enter to continue: "</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">host</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskRunner</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_preflight_tasks</span><span class="p">,</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_preflight_semaphore</span><span class="p">,</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_output</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span><span class="p">)</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_preflight_tasks_q</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
||||
|
||||
<span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGINT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sighandler</span><span class="p">)</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">task</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_task_q</span><span class="p">:</span>
|
||||
<span class="k">while</span> <span class="n">task</span><span class="o">.</span><span class="n">isAlive</span><span class="p">():</span>
|
||||
<span class="n">task</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="mf">0.1</span><span class="p">)</span>
|
||||
|
||||
<span class="k">while</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">threading</span><span class="o">.</span><span class="n">enumerate</span><span class="p">())</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span>
|
||||
<span class="c"># Even though all the threads may have been joined we</span>
|
||||
<span class="c"># should still wait for them to terminate. If we don't</span>
|
||||
<span class="c"># wait for that we will likely see the 'continue?' prompt</span>
|
||||
<span class="c"># before the preflight output gets a chance to print.</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_config</span><span class="p">[</span><span class="s">"onlypreflight"</span><span class="p">]:</span>
|
||||
<span class="n">ready</span> <span class="o">=</span> <span class="nb">raw_input</span><span class="p">(</span><span class="n">rdy_msg</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span><span class="o">.</span><span class="n">isSet</span><span class="p">():</span>
|
||||
<span class="k">return</span> <span class="bp">False</span>
|
||||
<span class="k">return</span> <span class="bp">True</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_run_tasks</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run a task body.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">signal</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">host</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskRunner</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tasks</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_output</span><span class="p">,</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span><span class="p">)</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">start</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_task_q</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
||||
|
||||
<span class="n">signal</span><span class="o">.</span><span class="n">signal</span><span class="p">(</span><span class="n">signal</span><span class="o">.</span><span class="n">SIGINT</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">__sighandler</span><span class="p">)</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">task</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_task_q</span><span class="p">:</span>
|
||||
<span class="k">while</span> <span class="n">task</span><span class="o">.</span><span class="n">isAlive</span><span class="p">():</span>
|
||||
<span class="n">task</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="mf">0.1</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span><span class="o">.</span><span class="n">isSet</span><span class="p">():</span>
|
||||
<span class="k">return</span> <span class="bp">False</span>
|
||||
<span class="k">return</span> <span class="bp">True</span>
|
||||
|
||||
<div class="viewcode-block" id="Runner.run"><a class="viewcode-back" href="../../code.html#taboot.runner.Runner.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run the preflight/tasks-body</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_preflight_tasks</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_run_preflight</span><span class="p">():</span>
|
||||
<span class="k">return</span> <span class="bp">False</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_config</span><span class="p">[</span><span class="s">"onlypreflight"</span><span class="p">]:</span>
|
||||
<span class="k">return</span> <span class="bp">True</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_run_tasks</span><span class="p">()</span>
|
||||
</div>
|
||||
<span class="k">def</span> <span class="nf">_expand_globs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Returns the hosts that expand out from globs.</span>
|
||||
|
||||
<span class="sd"> This is kind of a dirty hack around how Func returns minions</span>
|
||||
<span class="sd"> in an arbitrary order.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">func.overlord.client</span> <span class="kn">as</span> <span class="nn">fc</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">,</span> <span class="nb">basestring</span><span class="p">):</span>
|
||||
<span class="n">glob</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span>
|
||||
<span class="n">c</span> <span class="o">=</span> <span class="n">fc</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">glob</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">c</span><span class="o">.</span><span class="n">list_minions</span><span class="p">()</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c"># Iterate over each given item, expand it, and then push</span>
|
||||
<span class="c"># it onto our list. But only if it doesn't exist already!</span>
|
||||
<span class="n">found_hosts</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">h</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
|
||||
<span class="n">c</span> <span class="o">=</span> <span class="n">fc</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="n">h</span><span class="p">)</span>
|
||||
<span class="n">new_hosts</span> <span class="o">=</span> <span class="nb">filter</span><span class="p">(</span><span class="k">lambda</span> <span class="n">h</span><span class="p">:</span> <span class="n">h</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">found_hosts</span><span class="p">,</span>
|
||||
<span class="n">c</span><span class="o">.</span><span class="n">list_minions</span><span class="p">())</span>
|
||||
<span class="n">found_hosts</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">new_hosts</span><span class="p">)</span>
|
||||
<span class="c"># for found_host in c.list_minions():</span>
|
||||
<span class="c"># h = filter</span>
|
||||
<span class="c"># if not found_host in found_hosts:</span>
|
||||
<span class="c"># found_hosts.append(found_host)</span>
|
||||
<span class="k">return</span> <span class="n">found_hosts</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__sighandler</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">signal</span><span class="p">,</span> <span class="n">frame</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> If we get SIGINT on the CLI, we need to quit all the threads</span>
|
||||
<span class="sd"> in our process group</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">os</span>
|
||||
<span class="kn">import</span> <span class="nn">signal</span>
|
||||
|
||||
<span class="n">os</span><span class="o">.</span><span class="n">killpg</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getpgid</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">signal</span><span class="o">.</span><span class="n">SIGQUIT</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="TaskRunner"><a class="viewcode-back" href="../../code.html#taboot.runner.TaskRunner">[docs]</a><span class="k">class</span> <span class="nc">TaskRunner</span><span class="p">(</span><span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> TaskRunner is responsible for executing a set of tasks for a</span>
|
||||
<span class="sd"> single host in it's own thread.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">TaskResult</span> <span class="k">as</span> <span class="n">_TaskResult</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">tasks</span><span class="p">,</span> <span class="n">semaphore</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">fail_event</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `host`: The host to operate on.</span>
|
||||
<span class="sd"> - `tasks`: A list of tasks to perform (see :class:`Runner`)</span>
|
||||
<span class="sd"> - `semaphore`: The :class:`Runner` semaphore to acquire before</span>
|
||||
<span class="sd"> executing</span>
|
||||
<span class="sd"> - `output`: A list of outputters to use. (see :class:`Runner`)</span>
|
||||
<span class="sd"> - `fail_event`: The :class:`Runner` failure event to check before</span>
|
||||
<span class="sd"> executing. If this event is set when the TaskRunner acquires the</span>
|
||||
<span class="sd"> semaphore, then the TaskRunner is effectively a no-op.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">threading</span><span class="o">.</span><span class="n">Thread</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_host</span> <span class="o">=</span> <span class="n">host</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_tasks</span> <span class="o">=</span> <span class="n">tasks</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span> <span class="o">=</span> <span class="n">semaphore</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_output</span> <span class="o">=</span> <span class="n">output</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span> <span class="o">=</span> <span class="n">fail_event</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_state</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_state</span><span class="p">[</span><span class="n">key</span><span class="p">]</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__setitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_state</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
|
||||
|
||||
<div class="viewcode-block" id="TaskRunner.run"><a class="viewcode-back" href="../../code.html#taboot.runner.TaskRunner.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run the task(s) for the given host. If the fail_event passed</span>
|
||||
<span class="sd"> from the invoking :class:`Runner` is set, do nothing.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span><span class="o">.</span><span class="n">acquire</span><span class="p">()</span>
|
||||
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span><span class="o">.</span><span class="n">isSet</span><span class="p">():</span>
|
||||
<span class="c"># some other host has bombed</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
|
||||
<span class="k">return</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">host_success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">for</span> <span class="n">task</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tasks</span><span class="p">:</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">run_task</span><span class="p">(</span><span class="n">task</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">result</span><span class="o">.</span><span class="n">ignore_errors</span><span class="p">:</span>
|
||||
<span class="n">host_success</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="k">break</span>
|
||||
<span class="k">except</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_bail_failure</span><span class="p">()</span>
|
||||
<span class="k">raise</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">host_success</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_bail_failure</span><span class="p">()</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
|
||||
<span class="k">return</span> <span class="n">host_success</span>
|
||||
</div>
|
||||
<span class="k">def</span> <span class="nf">_bail_failure</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Die nicely :)</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_fail_event</span><span class="o">.</span><span class="n">set</span><span class="p">()</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_semaphore</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
|
||||
|
||||
<div class="viewcode-block" id="TaskRunner.run_task"><a class="viewcode-back" href="../../code.html#taboot.runner.TaskRunner.run_task">[docs]</a> <span class="k">def</span> <span class="nf">run_task</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">task</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run a single task. Sets task.host and then invokes the run</span>
|
||||
<span class="sd"> method for the task.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `task`: The task to run</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">ignore_errors</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="k">if</span> <span class="s">'ignore_errors'</span> <span class="ow">in</span> <span class="n">task</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">task</span><span class="p">[</span><span class="s">'ignore_errors'</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'True'</span><span class="p">,</span> <span class="s">'true'</span><span class="p">,</span> <span class="mi">1</span><span class="p">):</span>
|
||||
<span class="n">ignore_errors</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
|
||||
<span class="n">task</span> <span class="o">=</span> <span class="n">instantiator</span><span class="p">(</span><span class="n">task</span><span class="p">,</span> <span class="s">'taboot.tasks'</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_host</span><span class="p">)</span>
|
||||
|
||||
<span class="n">outputters</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_output</span><span class="p">:</span>
|
||||
<span class="n">instance</span> <span class="o">=</span> <span class="n">instantiator</span><span class="p">(</span><span class="n">o</span><span class="p">,</span> <span class="s">'taboot.output'</span><span class="p">,</span>
|
||||
<span class="n">host</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_host</span><span class="p">,</span>
|
||||
<span class="n">task</span><span class="o">=</span><span class="n">task</span><span class="p">)</span>
|
||||
<span class="n">outputters</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span>
|
||||
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="n">task</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_TaskResult</span><span class="p">(</span><span class="n">task</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="nb">repr</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
|
||||
|
||||
<span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">outputters</span><span class="p">:</span>
|
||||
<span class="n">o</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
|
||||
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">ignore_errors</span> <span class="o">=</span> <span class="n">ignore_errors</span>
|
||||
<span class="k">return</span> <span class="n">result</span></div></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../index.html" >Module code</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
263
html/_modules/taboot/tasks.html
Normal file
263
html/_modules/taboot/tasks.html
Normal file
|
@ -0,0 +1,263 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../index.html" />
|
||||
<link rel="up" title="Module code" href="../index.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../index.html" accesskey="U">Module code</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009-2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="BaseTask"><a class="viewcode-back" href="../../code.html#taboot.tasks.BaseTask">[docs]</a><span class="k">class</span> <span class="nc">BaseTask</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Base Task. All tasks should inherit from this. It does the</span>
|
||||
<span class="sd"> pretty string representation of a task and allows setting of the</span>
|
||||
<span class="sd"> host attribute.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_name</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">))</span>
|
||||
<span class="nb">next</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="o">.</span><span class="n">index</span><span class="p">(</span><span class="s">"'"</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="p">[</span><span class="nb">next</span><span class="p">:</span><span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="o">.</span><span class="n">rindex</span><span class="p">(</span><span class="s">"'"</span><span class="p">)]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_args</span> <span class="o">=</span> <span class="n">args</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">host</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">concurrentFriendly</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="s">"</span><span class="si">%s%s</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_args</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_sethost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">host</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_host</span> <span class="o">=</span> <span class="n">host</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_gethost</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'_host'</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_host</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">None</span>
|
||||
|
||||
<span class="n">host</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_gethost</span><span class="p">,</span> <span class="n">_sethost</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="FuncTask"><a class="viewcode-back" href="../../code.html#taboot.tasks.FuncTask">[docs]</a><span class="k">class</span> <span class="nc">FuncTask</span><span class="p">(</span><span class="n">BaseTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> A Func-based task. All tasks that utilize Func should inherit</span>
|
||||
<span class="sd"> from this.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">func.jobthing</span>
|
||||
<span class="kn">from</span> <span class="nn">taboot.errors</span> <span class="kn">import</span> <span class="n">FuncException</span> <span class="k">as</span> <span class="n">_FuncException</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_func_run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func_command</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Execute a command via Func.</span>
|
||||
|
||||
<span class="sd"> :Paramaters:</span>
|
||||
<span class="sd"> - `func_command` String representing func command to run</span>
|
||||
<span class="sd"> (e.g. 'command.run')</span>
|
||||
<span class="sd"> - `*args` Argument(s) to be used when invoking the func command</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">time</span>
|
||||
<span class="kn">import</span> <span class="nn">func.overlord.client</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">client</span> <span class="o">=</span> <span class="n">func</span><span class="o">.</span><span class="n">overlord</span><span class="o">.</span><span class="n">client</span><span class="o">.</span><span class="n">Client</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_host</span><span class="p">,</span> <span class="n">async</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
|
||||
<span class="n">job_id</span> <span class="o">=</span> <span class="nb">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">),</span>
|
||||
<span class="n">func_command</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">'.'</span><span class="p">),</span>
|
||||
<span class="n">client</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
||||
<span class="c"># poll until the job completes</span>
|
||||
<span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> <span class="o">=</span> <span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
|
||||
<span class="k">while</span> <span class="n">status</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="o">.</span><span class="n">jobthing</span><span class="o">.</span><span class="n">JOB_ID_FINISHED</span><span class="p">:</span>
|
||||
<span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="n">job_status</span><span class="p">(</span><span class="n">job_id</span><span class="p">)</span>
|
||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_host</span><span class="p">]</span>
|
||||
<span class="k">if</span> <span class="n">result</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s">'REMOTE_ERROR'</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="bp">self</span><span class="o">.</span><span class="n">_FuncException</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="bp">True</span><span class="p">,</span> <span class="n">result</span><span class="p">)</span>
|
||||
<span class="k">except</span> <span class="ne">Exception</span><span class="p">,</span> <span class="n">ex</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="p">(</span><span class="bp">False</span><span class="p">,</span> <span class="nb">repr</span><span class="p">(</span><span class="n">ex</span><span class="p">))</span>
|
||||
|
||||
<div class="viewcode-block" id="FuncTask.run"><a class="viewcode-back" href="../../code.html#taboot.tasks.FuncTask.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run the FuncTask.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `runner` A :class:`taboot.runner.TaskRunner` instance</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'_command'</span><span class="p">):</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"You MUST set self._command when instantiating "</span> <span class="o">+</span>
|
||||
<span class="s">"a subclass of FuncTask!"</span><span class="p">)</span>
|
||||
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_func_run</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_command</span><span class="p">,</span> <span class="o">*</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_args</span><span class="p">))</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">result</span><span class="p">[</span><span class="mi">0</span><span class="p">]:</span>
|
||||
<span class="c"># command executed successfully as far as "func success"</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process_result</span><span class="p">(</span><span class="n">result</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="n">result</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
|
||||
|
||||
</div></div>
|
||||
<div class="viewcode-block" id="FuncErrorTask"><a class="viewcode-back" href="../../code.html#taboot.tasks.FuncErrorTask">[docs]</a><span class="k">class</span> <span class="nc">FuncErrorTask</span><span class="p">(</span><span class="n">FuncTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Explicitly cause a func remote error by calling a bad command.</span>
|
||||
<span class="sd"> Used to verify func exception handling works as expected</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">FuncErrorTask</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'thiscommand.DoesntExist'</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="TaskResult"><a class="viewcode-back" href="../../code.html#taboot.tasks.TaskResult">[docs]</a><span class="k">class</span> <span class="nc">TaskResult</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> An encapsulation of the results of a task. This is passed to one</span>
|
||||
<span class="sd"> or more instances of output classes (derived from BaseOutput) in</span>
|
||||
<span class="sd"> order to display to the user.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">task</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="s">''</span><span class="p">,</span> <span class="n">ignore_errors</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `task`: The task object represented by this result</span>
|
||||
<span class="sd"> - `success`: Whether the task completed successfully or not</span>
|
||||
<span class="sd"> - `output`: Any text output produced by the task</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="n">task</span><span class="p">,</span> <span class="s">'host'</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_host</span> <span class="o">=</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_task</span> <span class="o">=</span> <span class="nb">repr</span><span class="p">(</span><span class="n">task</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_taskObj</span> <span class="o">=</span> <span class="n">task</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_success</span> <span class="o">=</span> <span class="n">success</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_output</span> <span class="o">=</span> <span class="n">output</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_ignore_errors</span> <span class="o">=</span> <span class="n">ignore_errors</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_gettask</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_task</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_gettaskObj</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_taskObj</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_settask</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">t</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_task</span> <span class="o">=</span> <span class="nb">repr</span><span class="p">(</span><span class="n">t</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_getsuccess</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_success</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setsuccess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_success</span> <span class="o">=</span> <span class="n">success</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_getoutput</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_output</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setoutput</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">output</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_output</span> <span class="o">=</span> <span class="n">output</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_getignore_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ignore_errors</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_setignore_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ignore_errors</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_ignore_errors</span> <span class="o">=</span> <span class="n">ignore_errors</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_gethost</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_host</span>
|
||||
|
||||
<span class="n">task</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_gettask</span><span class="p">,</span> <span class="n">_settask</span><span class="p">)</span>
|
||||
<span class="n">success</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_getsuccess</span><span class="p">,</span> <span class="n">_setsuccess</span><span class="p">)</span>
|
||||
<span class="n">output</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_getoutput</span><span class="p">,</span> <span class="n">_setoutput</span><span class="p">)</span>
|
||||
<span class="n">ignore_errors</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_getignore_errors</span><span class="p">,</span> <span class="n">_setignore_errors</span><span class="p">)</span>
|
||||
<span class="n">host</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_gethost</span><span class="p">)</span>
|
||||
<span class="n">taskObj</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_gettaskObj</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../index.html" >Module code</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
129
html/_modules/taboot/tasks/command.html
Normal file
129
html/_modules/taboot/tasks/command.html
Normal file
|
@ -0,0 +1,129 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.command — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.command</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009,2010, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">FuncTask</span><span class="p">,</span> <span class="n">TaskResult</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="Run"><a class="viewcode-back" href="../../../code.html#taboot.tasks.command.Run">[docs]</a><span class="k">class</span> <span class="nc">Run</span><span class="p">(</span><span class="n">FuncTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run arbitrary commands via Func. The arguments passed to __init__</span>
|
||||
<span class="sd"> are used to execute func.overlord.Client.command.run(args).</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `command`: Command to run on the remote host</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">command</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Run</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">command</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'command.run'</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">result</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">result</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">t</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
190
html/_modules/taboot/tasks/mod_jk.html
Normal file
190
html/_modules/taboot/tasks/mod_jk.html
Normal file
|
@ -0,0 +1,190 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.mod_jk — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.mod_jk</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009-2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">BaseTask</span><span class="p">,</span> <span class="n">FuncTask</span><span class="p">,</span> <span class="n">TaskResult</span>
|
||||
|
||||
<span class="n">JK_ENABLE</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">JK_DISABLE</span> <span class="o">=</span> <span class="mi">1</span>
|
||||
<span class="n">JK_STOP</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">ToggleHost</span><span class="p">(</span><span class="n">FuncTask</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">action</span><span class="p">,</span> <span class="n">proxyhost</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">ToggleHost</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">proxyhost</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_action</span> <span class="o">=</span> <span class="n">action</span>
|
||||
<span class="k">if</span> <span class="n">action</span> <span class="o">==</span> <span class="n">JK_ENABLE</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'taboot.modjk.enable_host'</span>
|
||||
<span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="n">JK_DISABLE</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'taboot.modjk.disable_host'</span>
|
||||
<span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="n">JK_STOP</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'taboot.modjk.stop_host'</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">"Undefined toggle action"</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">result</span><span class="p">)</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_action</span> <span class="o">==</span> <span class="n">JK_ENABLE</span><span class="p">:</span>
|
||||
<span class="n">verb</span> <span class="o">=</span> <span class="s">'Enabled'</span>
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_action</span> <span class="o">==</span> <span class="n">JK_DISABLE</span><span class="p">:</span>
|
||||
<span class="n">verb</span> <span class="o">=</span> <span class="s">'Disabled'</span>
|
||||
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_action</span> <span class="o">==</span> <span class="n">JK_STOP</span><span class="p">:</span>
|
||||
<span class="n">verb</span> <span class="o">=</span> <span class="s">'Stopped'</span>
|
||||
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="s">"</span><span class="si">%s</span><span class="s"> AJP on the following balancer/worker "</span> \
|
||||
<span class="s">"pairs:</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">verb</span>
|
||||
<span class="k">for</span> <span class="n">balancer</span><span class="p">,</span> <span class="n">worker</span> <span class="ow">in</span> <span class="n">result</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">+=</span> <span class="s">"</span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="p">(</span><span class="n">balancer</span><span class="p">,</span> <span class="n">worker</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="s">"Failed to find worker host"</span>
|
||||
<span class="k">return</span> <span class="n">t</span>
|
||||
|
||||
|
||||
<span class="k">class</span> <span class="nc">JKBaseTask</span><span class="p">(</span><span class="n">BaseTask</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">proxies</span><span class="p">,</span> <span class="n">action</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">JKBaseTask</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">modules</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">proxies</span> <span class="o">=</span> <span class="n">proxies</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">jkaction</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="n">modules</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">__module__</span><span class="p">],</span> <span class="s">"JK_</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="n">action</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="n">output</span> <span class="o">=</span> <span class="s">""</span>
|
||||
<span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">for</span> <span class="n">proxy</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">proxies</span><span class="p">:</span>
|
||||
<span class="n">toggler</span> <span class="o">=</span> <span class="n">ToggleHost</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">jkaction</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_host</span><span class="p">,</span> <span class="n">host</span><span class="o">=</span><span class="n">proxy</span><span class="p">)</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="n">toggler</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">runner</span><span class="p">)</span>
|
||||
<span class="n">output</span> <span class="o">+=</span> <span class="s">"</span><span class="si">%s</span><span class="s">:</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">proxy</span>
|
||||
<span class="n">output</span> <span class="o">+=</span> <span class="s">"</span><span class="si">%s</span><span class="se">\n</span><span class="s">"</span> <span class="o">%</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span>
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span> <span class="o">==</span> <span class="bp">False</span><span class="p">:</span>
|
||||
<span class="n">success</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="k">break</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="n">success</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="n">output</span><span class="p">)</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="OutOfRotation"><a class="viewcode-back" href="../../../code.html#taboot.tasks.mod_jk.OutOfRotation">[docs]</a><span class="k">class</span> <span class="nc">OutOfRotation</span><span class="p">(</span><span class="n">JKBaseTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Remove an AJP node from rotation on a proxy via modjkapi access on</span>
|
||||
<span class="sd"> the proxy with func.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `proxies`: A list of URLs to AJP jkmanage interfaces</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">proxies</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"stop"</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">OutOfRotation</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">proxies</span><span class="p">,</span> <span class="n">action</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="InRotation"><a class="viewcode-back" href="../../../code.html#taboot.tasks.mod_jk.InRotation">[docs]</a><span class="k">class</span> <span class="nc">InRotation</span><span class="p">(</span><span class="n">JKBaseTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Put an AJP node in rotation on a proxy via modjkapi access on</span>
|
||||
<span class="sd"> the proxy with func.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `proxies`: A list of URLs to AJP jkmanage interfaces</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">proxies</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">"enable"</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">InRotation</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">proxies</span><span class="p">,</span> <span class="n">action</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
284
html/_modules/taboot/tasks/nagios.html
Normal file
284
html/_modules/taboot/tasks/nagios.html
Normal file
|
@ -0,0 +1,284 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.nagios — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.nagios</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009-2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">BaseTask</span><span class="p">,</span> <span class="n">TaskResult</span><span class="p">,</span> <span class="n">FuncTask</span>
|
||||
<span class="kn">import</span> <span class="nn">taboot.errors</span>
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="NagiosBase"><a class="viewcode-back" href="../../../code.html#taboot.tasks.nagios.NagiosBase">[docs]</a><span class="k">class</span> <span class="nc">NagiosBase</span><span class="p">(</span><span class="n">FuncTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> All subsequent Nagios tasks are subclasses of this.</span>
|
||||
|
||||
<span class="sd"> Code note: Because a `FuncTask` expects to make connections to</span>
|
||||
<span class="sd"> `self.host` we need to switch `nagios_url` with `self.host` and</span>
|
||||
<span class="sd"> pass the original `self.host` as an argument.</span>
|
||||
|
||||
<span class="sd"> .. versionchanged:: 0.2.14</span>
|
||||
|
||||
<span class="sd"> The previous version specified the `nagios_url` parameter as a</span>
|
||||
<span class="sd"> URL. To facilitate transitions we automatically correct URLs</span>
|
||||
<span class="sd"> into hostnames.</span>
|
||||
|
||||
<span class="sd"> Previously the `service` key was defined as a scalar, like</span>
|
||||
<span class="sd"> "HTTP" or "JBOSS". This version accepts that key as a scalar OR</span>
|
||||
<span class="sd"> as a list and "does the right thing" in each case.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_fix_nagios_url</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> For backwards compatability we accept a Nagios URL that</span>
|
||||
<span class="sd"> identifies an HTTP resource.</span>
|
||||
|
||||
<span class="sd"> This method will take a string like http://foo.com/nagios/cmd.cgi</span>
|
||||
<span class="sd"> and return just the hostname component ("foo.com").</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">re</span>
|
||||
<span class="k">return</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="s">r'(https?://)([^/]+)(.*)'</span><span class="p">,</span> <span class="s">r'\2'</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Fail: "</span><span class="p">):</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">sucess</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">result</span>
|
||||
<span class="k">return</span> <span class="n">t</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="DisableAlerts"><a class="viewcode-back" href="../../../code.html#taboot.tasks.nagios.DisableAlerts">[docs]</a><span class="k">class</span> <span class="nc">DisableAlerts</span><span class="p">(</span><span class="n">NagiosBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Disable alerts for a host on a nagios instance</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `nagios_url`: Hostname of the Nagios server.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">target_host</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span>
|
||||
<span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fix_nagios_url</span><span class="p">(</span><span class="n">nagios_url</span><span class="p">)</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">DisableAlerts</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">target_host</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'nagios.disable_host_notifications'</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="EnableAlerts"><a class="viewcode-back" href="../../../code.html#taboot.tasks.nagios.EnableAlerts">[docs]</a><span class="k">class</span> <span class="nc">EnableAlerts</span><span class="p">(</span><span class="n">NagiosBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Enable alerts for a host on a nagios instance</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `nagios_url`: Hostname of the Nagios server.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">target_host</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span>
|
||||
<span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fix_nagios_url</span><span class="p">(</span><span class="n">nagios_url</span><span class="p">)</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">EnableAlerts</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">target_host</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'nagios.enable_host_notifications'</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="ScheduleDowntime"><a class="viewcode-back" href="../../../code.html#taboot.tasks.nagios.ScheduleDowntime">[docs]</a><span class="k">class</span> <span class="nc">ScheduleDowntime</span><span class="p">(</span><span class="n">NagiosBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Schedule downtime for services on a host in Nagios</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">,</span> <span class="n">service</span><span class="o">=</span><span class="s">'HOST'</span><span class="p">,</span> <span class="n">minutes</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `nagios_url`: Hostname of the Nagios server.</span>
|
||||
<span class="sd"> - `service`: Service or list of services to schedule down for.</span>
|
||||
<span class="sd"> - `minutes`: The number of minutes to schedule downtime</span>
|
||||
<span class="sd"> for. Default is 30.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="kn">import</span> <span class="nn">types</span>
|
||||
<span class="n">target_host</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span>
|
||||
<span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fix_nagios_url</span><span class="p">(</span><span class="n">nagios_url</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">service</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">StringTypes</span><span class="p">):</span>
|
||||
<span class="n">service</span> <span class="o">=</span> <span class="p">[</span><span class="n">service</span><span class="p">]</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">minutes</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">IntType</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">minutes</span><span class="p">,</span> <span class="n">types</span><span class="o">.</span><span class="n">FloatType</span><span class="p">):</span>
|
||||
<span class="n">minutes</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">minutes</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s">"Invalid data given for minutes."</span><span class="p">,</span>
|
||||
<span class="s">"Expecting int type."</span><span class="p">,</span>
|
||||
<span class="s">"Got '</span><span class="si">%s</span><span class="s">'."</span> <span class="o">%</span> <span class="n">minutes</span><span class="p">)</span>
|
||||
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">ScheduleDowntime</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">target_host</span><span class="p">,</span> <span class="n">service</span><span class="p">,</span>
|
||||
<span class="n">minutes</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">service</span> <span class="o">==</span> <span class="s">'HOST'</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">"nagios.schedule_host_downtime"</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'nagios.schedule_svc_downtime'</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">result</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Fail: "</span><span class="p">):</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">&</span> <span class="bp">False</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">sucess</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">&</span> <span class="bp">True</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">result</span>
|
||||
<span class="k">return</span> <span class="n">t</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="SilenceHost"><a class="viewcode-back" href="../../../code.html#taboot.tasks.nagios.SilenceHost">[docs]</a><span class="k">class</span> <span class="nc">SilenceHost</span><span class="p">(</span><span class="n">NagiosBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Silence all notifications for a given host</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `nagios_url`: Hostname of the Nagios server.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">target_host</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span>
|
||||
<span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fix_nagios_url</span><span class="p">(</span><span class="n">nagios_url</span><span class="p">)</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">SilenceHost</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">target_host</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'nagios.silence_host'</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">result</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Fail: "</span><span class="p">):</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">&</span> <span class="bp">False</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">sucess</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">&</span> <span class="bp">True</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">result</span>
|
||||
<span class="k">return</span> <span class="n">t</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="UnsilenceHost"><a class="viewcode-back" href="../../../code.html#taboot.tasks.nagios.UnsilenceHost">[docs]</a><span class="k">class</span> <span class="nc">UnsilenceHost</span><span class="p">(</span><span class="n">NagiosBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Unsilence all notifications for a given host</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nagios_url</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `nagios_url`: Hostname of the Nagios server.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">target_host</span> <span class="o">=</span> <span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span>
|
||||
<span class="n">kwargs</span><span class="p">[</span><span class="s">'host'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fix_nagios_url</span><span class="p">(</span><span class="n">nagios_url</span><span class="p">)</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">UnsilenceHost</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">target_host</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_command</span> <span class="o">=</span> <span class="s">'nagios.unsilence_host'</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_result</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">result</span><span class="p">):</span>
|
||||
<span class="n">t</span> <span class="o">=</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="bp">True</span>
|
||||
<span class="k">for</span> <span class="n">r</span> <span class="ow">in</span> <span class="n">result</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">r</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">"Fail: "</span><span class="p">):</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">&</span> <span class="bp">False</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">sucess</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">success</span> <span class="o">&</span> <span class="bp">True</span>
|
||||
<span class="n">t</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="n">result</span>
|
||||
<span class="k">return</span> <span class="n">t</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
149
html/_modules/taboot/tasks/poller.html
Normal file
149
html/_modules/taboot/tasks/poller.html
Normal file
|
@ -0,0 +1,149 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.poller — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.poller</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">BaseTask</span>
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">TaskResult</span>
|
||||
<span class="kn">import</span> <span class="nn">time</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="PollTask"><a class="viewcode-back" href="../../../code.html#taboot.tasks.poller.PollTask">[docs]</a><span class="k">class</span> <span class="nc">PollTask</span><span class="p">(</span><span class="n">BaseTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> PollTask. A task that will poll a particular task until the task</span>
|
||||
<span class="sd"> succeeds or until max_attempts is reached.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `task` The task to poll.</span>
|
||||
<span class="sd"> - `sleep_interval` The number of seconds to wait before trying</span>
|
||||
<span class="sd"> the task again.</span>
|
||||
<span class="sd"> - `max_attempts` The maximum number of attempts that the task</span>
|
||||
<span class="sd"> should be run.</span>
|
||||
<span class="sd"> - `fail_task` The task to run when max_attempts has been exhausted.</span>
|
||||
<span class="sd"> If no fail_task is provided, then a simple TaskResult</span>
|
||||
<span class="sd"> indicating failure is returned.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">task</span><span class="p">,</span> <span class="n">sleep_interval</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span> <span class="n">max_attempts</span><span class="o">=</span><span class="mi">6</span><span class="p">,</span>
|
||||
<span class="n">fail_task</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">PollTask</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_task</span> <span class="o">=</span> <span class="n">task</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_sleep_interval</span> <span class="o">=</span> <span class="n">sleep_interval</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_max_attempts</span> <span class="o">=</span> <span class="n">max_attempts</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_fail_task</span> <span class="o">=</span> <span class="n">fail_task</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_max_attempts</span><span class="p">):</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="n">runner</span><span class="o">.</span><span class="n">run_task</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_task</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">result</span>
|
||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_sleep_interval</span><span class="p">)</span>
|
||||
|
||||
<span class="c"># exhausted max_attempts</span>
|
||||
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fail_task</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">runner</span><span class="o">.</span><span class="n">run_task</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_fail_task</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="c"># return a "failed" TaskResult, stop executing further tasks</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
|
||||
<span class="n">output</span><span class="o">=</span><span class="s">"Max attempts of </span><span class="si">%s</span><span class="s"> reached running </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span>
|
||||
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_max_attempts</span><span class="p">,</span> <span class="nb">repr</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_task</span><span class="p">)))</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
196
html/_modules/taboot/tasks/puppet.html
Normal file
196
html/_modules/taboot/tasks/puppet.html
Normal file
|
@ -0,0 +1,196 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.puppet — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.puppet</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009-2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">command</span><span class="p">,</span> <span class="n">TaskResult</span>
|
||||
<span class="kn">import</span> <span class="nn">puppet</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="PuppetBase"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.PuppetBase">[docs]</a><span class="k">class</span> <span class="nc">PuppetBase</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Base class for puppet commands</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pcmd</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">PuppetBase</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">pcmd</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Run"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.Run">[docs]</a><span class="k">class</span> <span class="nc">Run</span><span class="p">(</span><span class="n">PuppetBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run 'puppetd --test || true'</span>
|
||||
|
||||
<span class="sd"> :Optional Parameters:</span>
|
||||
<span class="sd"> - `server`: Puppetmaster to run against</span>
|
||||
<span class="sd"> - `noop`: If this should be a noop run (Boolean)</span>
|
||||
<span class="sd"> - `safe`: Abort if puppet errors (Boolean)</span>
|
||||
|
||||
<span class="sd"> See also: :py:meth:`taboot.tasks.Puppet.SafeRun`</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">server</span><span class="o">=</span><span class="s">""</span><span class="p">,</span> <span class="n">noop</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="n">pcmd</span> <span class="o">=</span> <span class="s">"puppetd --test --color=false"</span>
|
||||
<span class="k">if</span> <span class="n">server</span> <span class="o">!=</span> <span class="s">""</span><span class="p">:</span>
|
||||
<span class="n">pcmd</span> <span class="o">+=</span> <span class="s">" --server=</span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">server</span>
|
||||
<span class="k">if</span> <span class="n">noop</span> <span class="o">==</span> <span class="bp">True</span><span class="p">:</span>
|
||||
<span class="n">pcmd</span> <span class="o">+=</span> <span class="s">" --noop"</span>
|
||||
<span class="k">if</span> <span class="n">safe</span> <span class="o">==</span> <span class="bp">False</span><span class="p">:</span>
|
||||
<span class="c"># If safe is False, ignore the return code of the puppet run</span>
|
||||
<span class="n">pcmd</span> <span class="o">+=</span> <span class="s">" || true"</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Run</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">pcmd</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Run</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">runner</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">PuppetTaskResult</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">taskObj</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">,</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">ignore_errors</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="SafeRun"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.SafeRun">[docs]</a><span class="k">class</span> <span class="nc">SafeRun</span><span class="p">(</span><span class="n">puppet</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run 'puppetd --test'.</span>
|
||||
|
||||
<span class="sd"> How is this different from Run? Simple, it will abort everything</span>
|
||||
<span class="sd"> if puppet returns with a non-zero exit status.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">server</span><span class="o">=</span><span class="s">""</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">SafeRun</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">server</span><span class="p">,</span> <span class="n">safe</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Enable"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.Enable">[docs]</a><span class="k">class</span> <span class="nc">Enable</span><span class="p">(</span><span class="n">PuppetBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run 'puppetd --enable'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Enable</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'puppetd --enable'</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Disable"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.Disable">[docs]</a><span class="k">class</span> <span class="nc">Disable</span><span class="p">(</span><span class="n">PuppetBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Run 'puppetd --disable'.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Disable</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'puppetd --disable'</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="DeleteLockfile"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.DeleteLockfile">[docs]</a><span class="k">class</span> <span class="nc">DeleteLockfile</span><span class="p">(</span><span class="n">PuppetBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Remove the puppet lock file.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="n">PUPPET_LOCKFILE</span> <span class="o">=</span> <span class="s">"/var/lib/puppet/state/puppetdlock"</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">DeleteLockfile</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">"rm -f </span><span class="si">%s</span><span class="s">"</span> <span class="o">%</span> <span class="n">PUPPET_LOCKFILE</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="PuppetTaskResult"><a class="viewcode-back" href="../../../code.html#taboot.tasks.puppet.PuppetTaskResult">[docs]</a><span class="k">class</span> <span class="nc">PuppetTaskResult</span><span class="p">(</span><span class="n">TaskResult</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Wrapper around TaskResult to be able to differentiate in output class</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">task</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="s">''</span><span class="p">,</span> <span class="n">ignore_errors</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">PuppetTaskResult</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">task</span><span class="p">,</span> <span class="n">success</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span>
|
||||
<span class="n">ignore_errors</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
189
html/_modules/taboot/tasks/rpm.html
Normal file
189
html/_modules/taboot/tasks/rpm.html
Normal file
|
@ -0,0 +1,189 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.rpm — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.rpm</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009,2010, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">command</span><span class="p">,</span> <span class="n">TaskResult</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="RPMBase"><a class="viewcode-back" href="../../../code.html#taboot.tasks.rpm.RPMBase">[docs]</a><span class="k">class</span> <span class="nc">RPMBase</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Base class for rpm commands</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pcmd</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">RPMBase</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">pcmd</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="PreManifest"><a class="viewcode-back" href="../../../code.html#taboot.tasks.rpm.PreManifest">[docs]</a><span class="k">class</span> <span class="nc">PreManifest</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Gather list of installed RPMs. A later invocation of :class:`PostManifest`</span>
|
||||
<span class="sd"> is then used to output the RPMs changed during intermediate tasks.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">PreManifest</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'rpm -qa | sort'</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="PreManifest.run"><a class="viewcode-back" href="../../../code.html#taboot.tasks.rpm.PreManifest.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Override the default :class:`command.Run` to strip the output</span>
|
||||
<span class="sd"> from the result because we're really not interested in the</span>
|
||||
<span class="sd"> contents of the pre-manifest; we just want to collect it to</span>
|
||||
<span class="sd"> compare later on with PostManifest.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">PreManifest</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">runner</span><span class="p">)</span>
|
||||
<span class="n">runner</span><span class="p">[</span><span class="s">'rpm.PreManifest'</span><span class="p">]</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="s">''</span>
|
||||
<span class="k">return</span> <span class="n">result</span>
|
||||
|
||||
</div></div>
|
||||
<div class="viewcode-block" id="PostManifest"><a class="viewcode-back" href="../../../code.html#taboot.tasks.rpm.PostManifest">[docs]</a><span class="k">class</span> <span class="nc">PostManifest</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Gather list of installed RPMs and compare against a previously</span>
|
||||
<span class="sd"> taken :class:`PreManifest`</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">difflib</span> <span class="kn">import</span> <span class="n">Differ</span> <span class="k">as</span> <span class="n">_Differ</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">PostManifest</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'rpm -qa | sort'</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="PostManifest.run"><a class="viewcode-back" href="../../../code.html#taboot.tasks.rpm.PostManifest.run">[docs]</a> <span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> The runner that gets passed in contains state that can be</span>
|
||||
<span class="sd"> access via dict-like access. PreManifest uses this to write</span>
|
||||
<span class="sd"> to the rpm.Premanifest field. So we'll check to make sure the</span>
|
||||
<span class="sd"> pre-manifest is there by looking for that state.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">try</span><span class="p">:</span>
|
||||
<span class="n">pre_manifest</span> <span class="o">=</span> <span class="n">runner</span><span class="p">[</span><span class="s">'rpm.PreManifest'</span><span class="p">]</span>
|
||||
<span class="k">except</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
|
||||
<span class="n">output</span><span class="o">=</span><span class="s">"You must use PreManifest before PostManifest"</span><span class="p">)</span>
|
||||
|
||||
<span class="c"># ok, so now we have something to compare against so we get</span>
|
||||
<span class="c"># new state...</span>
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">runner</span><span class="p">)</span>
|
||||
|
||||
<span class="n">old_list</span> <span class="o">=</span> <span class="n">pre_manifest</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="n">new_list</span> <span class="o">=</span> <span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="o">.</span><span class="n">splitlines</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
|
||||
<span class="n">differ</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_Differ</span><span class="p">()</span>
|
||||
<span class="n">diff_output</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">differ</span><span class="o">.</span><span class="n">compare</span><span class="p">(</span><span class="n">old_list</span><span class="p">,</span> <span class="n">new_list</span><span class="p">))</span>
|
||||
<span class="n">diff_output</span> <span class="o">=</span> <span class="p">[</span><span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">diff_output</span> <span class="k">if</span> <span class="n">line</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s">'+'</span><span class="p">,</span> <span class="s">'-'</span><span class="p">)]</span>
|
||||
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span> <span class="o">=</span> <span class="s">''</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">diff_output</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">RPMTaskResult</span><span class="p">(</span><span class="n">result</span><span class="o">.</span><span class="n">taskObj</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">success</span><span class="p">,</span>
|
||||
<span class="n">result</span><span class="o">.</span><span class="n">output</span><span class="p">,</span> <span class="n">result</span><span class="o">.</span><span class="n">ignore_errors</span><span class="p">)</span>
|
||||
|
||||
</div></div>
|
||||
<div class="viewcode-block" id="RPMTaskResult"><a class="viewcode-back" href="../../../code.html#taboot.tasks.rpm.RPMTaskResult">[docs]</a><span class="k">class</span> <span class="nc">RPMTaskResult</span><span class="p">(</span><span class="n">TaskResult</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Wrapper around TaskResult to be able to differentiate in output class</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">task</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">output</span><span class="o">=</span><span class="s">''</span><span class="p">,</span> <span class="n">ignore_errors</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">RPMTaskResult</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">task</span><span class="p">,</span> <span class="n">success</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span>
|
||||
<span class="n">ignore_errors</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
149
html/_modules/taboot/tasks/service.html
Normal file
149
html/_modules/taboot/tasks/service.html
Normal file
|
@ -0,0 +1,149 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.service — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.service</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009,2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">command</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="ServiceBase"><a class="viewcode-back" href="../../../code.html#taboot.tasks.service.ServiceBase">[docs]</a><span class="k">class</span> <span class="nc">ServiceBase</span><span class="p">(</span><span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Base Class for system service tasks</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">pass</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Start"><a class="viewcode-back" href="../../../code.html#taboot.tasks.service.Start">[docs]</a><span class="k">class</span> <span class="nc">Start</span><span class="p">(</span><span class="n">ServiceBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Start a service.</span>
|
||||
|
||||
<span class="sd"> Arguments:</span>
|
||||
<span class="sd"> - ``service`` - The service to start.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Start</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'service </span><span class="si">%s</span><span class="s"> start'</span> <span class="o">%</span> <span class="n">service</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Stop"><a class="viewcode-back" href="../../../code.html#taboot.tasks.service.Stop">[docs]</a><span class="k">class</span> <span class="nc">Stop</span><span class="p">(</span><span class="n">ServiceBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Stop a service.</span>
|
||||
|
||||
<span class="sd"> Arguments:</span>
|
||||
<span class="sd"> - ``service`` - The service to stop.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Stop</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'service </span><span class="si">%s</span><span class="s"> stop'</span> <span class="o">%</span> <span class="n">service</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Restart"><a class="viewcode-back" href="../../../code.html#taboot.tasks.service.Restart">[docs]</a><span class="k">class</span> <span class="nc">Restart</span><span class="p">(</span><span class="n">ServiceBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Restart a service.</span>
|
||||
|
||||
<span class="sd"> Arguments:</span>
|
||||
<span class="sd"> - ``service`` - The service to restart.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">service</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Restart</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="s">'service </span><span class="si">%s</span><span class="s"> restart'</span> <span class="o">%</span> <span class="n">service</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
181
html/_modules/taboot/tasks/sleep.html
Normal file
181
html/_modules/taboot/tasks/sleep.html
Normal file
|
@ -0,0 +1,181 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.sleep — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.sleep</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2011, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">BaseTask</span><span class="p">,</span> <span class="n">TaskResult</span>
|
||||
<span class="kn">from</span> <span class="nn">termios</span> <span class="kn">import</span> <span class="n">tcflush</span><span class="p">,</span> <span class="n">TCIFLUSH</span>
|
||||
<span class="kn">import</span> <span class="nn">sys</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="SleepBase"><a class="viewcode-back" href="../../../code.html#taboot.tasks.sleep.SleepBase">[docs]</a><span class="k">class</span> <span class="nc">SleepBase</span><span class="p">(</span><span class="n">BaseTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Base class for task-queue pausing classes.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">SleepBase</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Seconds"><a class="viewcode-back" href="../../../code.html#taboot.tasks.sleep.Seconds">[docs]</a><span class="k">class</span> <span class="nc">Seconds</span><span class="p">(</span><span class="n">SleepBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Halt task processing on a node for a certain number of seconds.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `seconds`: Number of seconds to halt execution for.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seconds</span><span class="o">=</span><span class="mi">60</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Seconds</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_seconds</span> <span class="o">=</span> <span class="n">seconds</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="kn">import</span> <span class="nn">time</span>
|
||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_seconds</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
|
||||
<span class="n">output</span><span class="o">=</span><span class="s">"Paused for </span><span class="si">%s</span><span class="s"> seconds"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_seconds</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Minutes"><a class="viewcode-back" href="../../../code.html#taboot.tasks.sleep.Minutes">[docs]</a><span class="k">class</span> <span class="nc">Minutes</span><span class="p">(</span><span class="n">SleepBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Halt task processing on a node for a certain number of minutes.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `minutes`: Number of minutes to halt execution for.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">minutes</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">Minutes</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_minutes</span> <span class="o">=</span> <span class="n">minutes</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_seconds</span> <span class="o">=</span> <span class="n">minutes</span> <span class="o">*</span> <span class="mi">60</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="kn">import</span> <span class="nn">time</span>
|
||||
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_seconds</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
|
||||
<span class="n">output</span><span class="o">=</span><span class="s">"Paused for </span><span class="si">%s</span><span class="s"> minutes"</span> <span class="o">%</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_minutes</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="WaitOnInput"><a class="viewcode-back" href="../../../code.html#taboot.tasks.sleep.WaitOnInput">[docs]</a><span class="k">class</span> <span class="nc">WaitOnInput</span><span class="p">(</span><span class="n">SleepBase</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Halt task processing on a node until the user presses enter.</span>
|
||||
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `message`: The message to prompt on the CLI.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="s">"Press enter to continue</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="nb">super</span><span class="p">(</span><span class="n">WaitOnInput</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_message</span> <span class="o">=</span> <span class="n">message</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">concurrentFriendly</span> <span class="o">=</span> <span class="bp">False</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">runner</span><span class="p">):</span>
|
||||
<span class="kn">import</span> <span class="nn">time</span>
|
||||
<span class="n">start</span> <span class="o">=</span> <span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span>
|
||||
<span class="n">tcflush</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span class="p">,</span> <span class="n">TCIFLUSH</span><span class="p">)</span>
|
||||
<span class="nb">raw_input</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_message</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">TaskResult</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">success</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
|
||||
<span class="n">output</span><span class="o">=</span><span class="s">"Paused for </span><span class="si">%s</span><span class="s"> seconds"</span> <span class="o">%</span>
|
||||
<span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">()</span> <span class="o">-</span> <span class="n">start</span><span class="p">))</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
166
html/_modules/taboot/tasks/yum.html
Normal file
166
html/_modules/taboot/tasks/yum.html
Normal file
|
@ -0,0 +1,166 @@
|
|||
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
|
||||
<title>taboot.tasks.yum — Taboot v0.4.0 documentation</title>
|
||||
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
|
||||
<script type="text/javascript">
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: '../../../',
|
||||
VERSION: '0.4.0',
|
||||
COLLAPSE_INDEX: false,
|
||||
FILE_SUFFIX: '.html',
|
||||
HAS_SOURCE: true
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript" src="../../../_static/jquery.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/underscore.js"></script>
|
||||
<script type="text/javascript" src="../../../_static/doctools.js"></script>
|
||||
<link rel="top" title="Taboot v0.4.0 documentation" href="../../../index.html" />
|
||||
<link rel="up" title="taboot.tasks" href="../tasks.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" accesskey="U">taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
<div class="body">
|
||||
|
||||
<h1>Source code for taboot.tasks.yum</h1><div class="highlight"><pre>
|
||||
<span class="c"># -*- coding: utf-8 -*-</span>
|
||||
<span class="c"># Taboot - Client utility for performing deployments with Func.</span>
|
||||
<span class="c"># Copyright © 2009, Red Hat, Inc.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is free software: you can redistribute it and/or modify</span>
|
||||
<span class="c"># it under the terms of the GNU General Public License as published by</span>
|
||||
<span class="c"># the Free Software Foundation, either version 3 of the License, or</span>
|
||||
<span class="c"># (at your option) any later version.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># This program is distributed in the hope that it will be useful,</span>
|
||||
<span class="c"># but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
|
||||
<span class="c"># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
|
||||
<span class="c"># GNU General Public License for more details.</span>
|
||||
<span class="c">#</span>
|
||||
<span class="c"># You should have received a copy of the GNU General Public License</span>
|
||||
<span class="c"># along with this program. If not, see <http://www.gnu.org/licenses/>.</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">taboot.tasks</span> <span class="kn">import</span> <span class="n">command</span><span class="p">,</span> <span class="n">BaseTask</span>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="YumBase"><a class="viewcode-back" href="../../../code.html#taboot.tasks.yum.YumBase">[docs]</a><span class="k">class</span> <span class="nc">YumBase</span><span class="p">(</span><span class="n">BaseTask</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Base class for all Yum-related tasks.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">packages</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_packages</span> <span class="o">=</span> <span class="n">packages</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_packages_str</span> <span class="o">=</span> <span class="s">' '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">packages</span><span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_packages</span> <span class="o">=</span> <span class="p">[</span><span class="n">packages</span><span class="p">]</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">_packages_str</span> <span class="o">=</span> <span class="n">packages</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Install"><a class="viewcode-back" href="../../../code.html#taboot.tasks.yum.Install">[docs]</a><span class="k">class</span> <span class="nc">Install</span><span class="p">(</span><span class="n">YumBase</span><span class="p">,</span> <span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Install one or more packages.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `packages`: A list of packages to install</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">YumBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="p">)</span>
|
||||
<span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'yum install -y </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_packages_str</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Update"><a class="viewcode-back" href="../../../code.html#taboot.tasks.yum.Update">[docs]</a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">YumBase</span><span class="p">,</span> <span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Update one or more packages.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="o">=</span><span class="p">[],</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `packages`: A list of packages to update. If `packages` is empty,</span>
|
||||
<span class="sd"> update all packages on the system.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">YumBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="p">)</span>
|
||||
<span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'yum update -y </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_packages_str</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
|
||||
|
||||
</div>
|
||||
<div class="viewcode-block" id="Remove"><a class="viewcode-back" href="../../../code.html#taboot.tasks.yum.Remove">[docs]</a><span class="k">class</span> <span class="nc">Remove</span><span class="p">(</span><span class="n">YumBase</span><span class="p">,</span> <span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Remove one or more packages.</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> :Parameters:</span>
|
||||
<span class="sd"> - `packages`: A list of packages to remove.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">YumBase</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packages</span><span class="p">)</span>
|
||||
<span class="n">command</span><span class="o">.</span><span class="n">Run</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s">'yum remove -y </span><span class="si">%s</span><span class="s">'</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_packages_str</span><span class="p">,</span>
|
||||
<span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<div id="searchbox" style="display: none">
|
||||
<h3>Quick search</h3>
|
||||
<form class="search" action="../../../search.html" method="get">
|
||||
<input type="text" name="q" size="18" />
|
||||
<input type="submit" value="Go" />
|
||||
<input type="hidden" name="check_keywords" value="yes" />
|
||||
<input type="hidden" name="area" value="default" />
|
||||
</form>
|
||||
<p class="searchtip" style="font-size: 90%">
|
||||
Enter search terms or a module, class or function name.
|
||||
</p>
|
||||
</div>
|
||||
<script type="text/javascript">$('#searchbox').show(0);</script>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="related">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="../../../genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li><a href="../../../index.html">Taboot v0.4.0 documentation</a> »</li>
|
||||
<li><a href="../../index.html" >Module code</a> »</li>
|
||||
<li><a href="../tasks.html" >taboot.tasks</a> »</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer">
|
||||
© Copyright 2009-2011 Red Hat, Inc.
|
||||
Last updated on Mar 07, 2012.
|
||||
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue