update docs

Jira-Issue: OSTACKDEV-19
This commit is contained in:
Steve Noyes 2016-04-14 10:51:56 -04:00
parent c96c508b01
commit 161d50be72
43 changed files with 672 additions and 387 deletions

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Overview: module code &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>Overview: module code &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -108,7 +108,7 @@
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.async &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.async &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -214,7 +214,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.client &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.client &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -60,7 +60,13 @@
<span class="c"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c"># License for the specific language governing permissions and limitations</span>
<span class="c"># under the License.</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">sys</span>
<span class="kn">from</span> <span class="nn">logging.handlers</span> <span class="kn">import</span> <span class="n">RotatingFileHandler</span>
<span class="kn">from</span> <span class="nn">kollacli.api.async</span> <span class="kn">import</span> <span class="n">AsyncApi</span>
<span class="kn">from</span> <span class="nn">kollacli.api.deploy</span> <span class="kn">import</span> <span class="n">DeployApi</span>
@ -71,6 +77,9 @@
<span class="kn">from</span> <span class="nn">kollacli.api.service</span> <span class="kn">import</span> <span class="n">ServiceApi</span>
<span class="kn">from</span> <span class="nn">kollacli.api.support</span> <span class="kn">import</span> <span class="n">SupportApi</span>
<span class="n">CONSOLE_MESSAGE_FORMAT</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%(message)s</span><span class="s">&#39;</span>
<span class="n">LOG_FILE_MESSAGE_FORMAT</span> <span class="o">=</span> \
<span class="s">&#39;[</span><span class="si">%(asctime)s</span><span class="s">] </span><span class="si">%(levelname)-8s</span><span class="s"> </span><span class="si">%(name)s</span><span class="s"> </span><span class="si">%(message)s</span><span class="s">&#39;</span>
<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
@ -85,8 +94,70 @@
<span class="n">SupportApi</span><span class="p">,</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="bp">self</span><span class="o">.</span><span class="n">_configure_logging</span><span class="p">()</span>
<div class="viewcode-block" id="ClientApi.base_call"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.client.ClientApi.base_call">[docs]</a> <span class="k">def</span> <span class="nf">base_call</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;base call&#39;</span><span class="p">)</span></div></div>
<span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="s">&#39;base call&#39;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="ClientApi.enable_console_logging"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.client.ClientApi.enable_console_logging">[docs]</a> <span class="k">def</span> <span class="nf">enable_console_logging</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">level</span><span class="p">,</span> <span class="n">enable</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;enable/disable console logging for the api</span>
<span class="sd"> enable: True/False</span>
<span class="sd"> level: logging.INFO, logging.DEBUG, logging.WARNING,</span>
<span class="sd"> logging.CRITICAL...</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">root_logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
<span class="n">console</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">StreamHandler</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">stderr</span><span class="p">)</span>
<span class="k">if</span> <span class="n">enable</span><span class="p">:</span>
<span class="n">console</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">level</span><span class="p">)</span>
<span class="n">formatter</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">(</span><span class="n">CONSOLE_MESSAGE_FORMAT</span><span class="p">)</span>
<span class="n">console</span><span class="o">.</span><span class="n">setFormatter</span><span class="p">(</span><span class="n">formatter</span><span class="p">)</span>
<span class="n">root_logger</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">console</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">root_logger</span><span class="o">.</span><span class="n">removeHandler</span><span class="p">(</span><span class="n">console</span><span class="p">)</span>
</div>
<span class="k">def</span> <span class="nf">_configure_logging</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">root_logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
<span class="n">root_logger</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">DEBUG</span><span class="p">)</span>
<span class="n">handler_found</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">handlers</span> <span class="o">=</span> <span class="n">root_logger</span><span class="o">.</span><span class="n">handlers</span>
<span class="k">for</span> <span class="n">handler</span> <span class="ow">in</span> <span class="n">handlers</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">handler</span><span class="p">,</span> <span class="n">RotatingFileHandler</span><span class="p">):</span>
<span class="n">handler_found</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">break</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">handler_found</span><span class="p">:</span>
<span class="c"># logger has not been set up</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">rotate_handler</span> <span class="o">=</span> <span class="n">RotatingFileHandler</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">join</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">abspath</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">sep</span><span class="p">),</span>
<span class="s">&#39;var&#39;</span><span class="p">,</span> <span class="s">&#39;log&#39;</span><span class="p">,</span> <span class="s">&#39;kolla&#39;</span><span class="p">,</span> <span class="s">&#39;kolla.log&#39;</span><span class="p">),</span>
<span class="n">maxBytes</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_get_kolla_log_file_size</span><span class="p">(),</span>
<span class="n">backupCount</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">IOError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="c"># most likely the caller is not part of the kolla group</span>
<span class="k">raise</span> <span class="ne">IOError</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Permission denied to run the kolla client.&#39;</span>
<span class="s">&#39;</span><span class="se">\n</span><span class="s">Please add user to the kolla group and &#39;</span>
<span class="s">&#39;then log out and back in. {error}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">error</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
<span class="n">formatter</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">(</span><span class="n">LOG_FILE_MESSAGE_FORMAT</span><span class="p">)</span>
<span class="n">rotate_handler</span><span class="o">.</span><span class="n">setFormatter</span><span class="p">(</span><span class="n">formatter</span><span class="p">)</span>
<span class="n">rotate_handler</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span>
<span class="n">root_logger</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">rotate_handler</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_get_kolla_log_file_size</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">envvar</span> <span class="o">=</span> <span class="s">&#39;KOLLA_LOG_FILE_SIZE&#39;</span>
<span class="n">size_str</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">environ</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">envvar</span><span class="p">,</span> <span class="s">&#39;500000&#39;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">size</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">size_str</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">((</span><span class="s">&#39;Environmental variable ({env_var}) is not an &#39;</span>
<span class="s">&#39;integer ({log_size}).&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">env_var</span><span class="o">=</span><span class="n">envvar</span><span class="p">,</span> <span class="n">log_size</span><span class="o">=</span><span class="n">size_str</span><span class="p">))</span>
<span class="n">size</span> <span class="o">=</span> <span class="mi">50000</span>
<span class="k">return</span> <span class="n">size</span></div>
</pre></div>
</div>
@ -120,7 +191,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.deploy &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.deploy &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -119,7 +119,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.exceptions &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.exceptions &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -160,7 +160,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.group &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.group &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -274,7 +274,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.host &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.host &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -228,7 +228,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.job &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.job &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -78,7 +78,10 @@
<div class="viewcode-block" id="Job.get_status"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.job.Job.get_status">[docs]</a> <span class="k">def</span> <span class="nf">get_status</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get status of job</span>
<span class="sd"> :return: None if job still running, 0 if job succeeded, 1 if job failed</span>
<span class="sd"> :return: None: job is still running</span>
<span class="sd"> 0: job succeeded</span>
<span class="sd"> 1: job failed</span>
<span class="sd"> 2: job killed by user</span>
<span class="sd"> :rtype: int or None</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ansible_job</span><span class="o">.</span><span class="n">get_status</span><span class="p">()</span>
@ -97,7 +100,11 @@
<span class="sd"> :return: console output useful for debugging failed jobs.</span>
<span class="sd"> :rtype: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ansible_job</span><span class="o">.</span><span class="n">get_command_output</span><span class="p">()</span></div></div>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ansible_job</span><span class="o">.</span><span class="n">get_command_output</span><span class="p">()</span>
</div>
<div class="viewcode-block" id="Job.kill"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.job.Job.kill">[docs]</a> <span class="k">def</span> <span class="nf">kill</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;kill the job&quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_ansible_job</span><span class="o">.</span><span class="n">kill</span><span class="p">()</span></div></div>
</pre></div>
</div>
@ -131,7 +138,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.password &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.password &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -130,7 +130,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.properties &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.properties &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -112,14 +112,12 @@
<span class="bp">self</span><span class="o">.</span><span class="n">ovr_group</span> <span class="o">=</span> <span class="bp">False</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ovr_host</span> <span class="o">=</span> <span class="bp">False</span>
</div>
<div class="viewcode-block" id="PropertyApi.property_set"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi.property_set">[docs]</a> <span class="k">def</span> <span class="nf">property_set</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>
<div class="viewcode-block" id="PropertyApi.property_set"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi.property_set">[docs]</a> <span class="k">def</span> <span class="nf">property_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">,</span>
<span class="n">property_type</span><span class="o">=</span><span class="n">GLOBAL_TYPE</span><span class="p">,</span> <span class="n">change_set</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Set a property</span>
<span class="sd"> :param key: property key</span>
<span class="sd"> :type key: string</span>
<span class="sd"> :param value: property value</span>
<span class="sd"> :type value: string</span>
<span class="sd"> :param property_dict: property dictionary containing key / values</span>
<span class="sd"> :type property_dict: dictionary</span>
<span class="sd"> :param property_type: one of &#39;global&#39;, &#39;group&#39; or &#39;host&#39;</span>
<span class="sd"> :type property_type: string</span>
<span class="sd"> :param change_set: for group or host sets this is the list of groups</span>
@ -127,10 +125,11 @@
<span class="sd"> :type change_set: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property Key&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">key</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property Value&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">property_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property Key&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property Value&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">property_dict</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">property_dict</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_check_type</span><span class="p">(</span><span class="n">property_type</span><span class="p">)</span>
<span class="k">if</span> <span class="n">property_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">GLOBAL_TYPE</span><span class="p">:</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">change_set</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Change Set&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">,</span> <span class="n">none_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
@ -139,18 +138,18 @@
<span class="n">ansible_properties</span> <span class="o">=</span> <span class="n">AnsibleProperties</span><span class="p">()</span>
<span class="k">if</span> <span class="n">property_type</span> <span class="o">==</span> <span class="n">GLOBAL_TYPE</span><span class="p">:</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">set_property</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="n">ansible_properties</span><span class="o">.</span><span class="n">set_property</span><span class="p">(</span><span class="n">property_dict</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">property_type</span> <span class="o">==</span> <span class="n">GROUP_TYPE</span><span class="p">:</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">set_group_property</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="n">change_set</span><span class="p">)</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">set_group_property</span><span class="p">(</span><span class="n">property_dict</span><span class="p">,</span> <span class="n">change_set</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">set_host_property</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="n">change_set</span><span class="p">)</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">set_host_property</span><span class="p">(</span><span class="n">property_dict</span><span class="p">,</span> <span class="n">change_set</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="PropertyApi.property_clear"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi.property_clear">[docs]</a> <span class="k">def</span> <span class="nf">property_clear</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">property_type</span><span class="o">=</span><span class="n">GLOBAL_TYPE</span><span class="p">,</span>
<div class="viewcode-block" id="PropertyApi.property_clear"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi.property_clear">[docs]</a> <span class="k">def</span> <span class="nf">property_clear</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_list</span><span class="p">,</span> <span class="n">property_type</span><span class="o">=</span><span class="n">GLOBAL_TYPE</span><span class="p">,</span>
<span class="n">change_set</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Clear a property</span>
<span class="sd"> :param key: property key</span>
<span class="sd"> :type key: string</span>
<span class="sd"> :param property_list: property list</span>
<span class="sd"> :type property_list: list</span>
<span class="sd"> :param property_type: one of &#39;global&#39;, &#39;group&#39; or &#39;host&#39;</span>
<span class="sd"> :type property_type: string</span>
<span class="sd"> :param change_set: for group or host clears this is the list of</span>
@ -158,8 +157,9 @@
<span class="sd"> :type change_set: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property Key&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">key</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property List&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">property_list</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_check_type</span><span class="p">(</span><span class="n">property_type</span><span class="p">)</span>
<span class="k">if</span> <span class="n">property_type</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">GLOBAL_TYPE</span><span class="p">:</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">change_set</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Change Set&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">,</span> <span class="n">none_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
@ -168,11 +168,11 @@
<span class="n">ansible_properties</span> <span class="o">=</span> <span class="n">AnsibleProperties</span><span class="p">()</span>
<span class="k">if</span> <span class="n">property_type</span> <span class="o">==</span> <span class="n">GLOBAL_TYPE</span><span class="p">:</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">clear_property</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">clear_property</span><span class="p">(</span><span class="n">property_list</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">property_type</span> <span class="o">==</span> <span class="n">GROUP_TYPE</span><span class="p">:</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">clear_group_property</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">change_set</span><span class="p">)</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">clear_group_property</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="n">change_set</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">clear_host_property</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">change_set</span><span class="p">)</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">clear_host_property</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="n">change_set</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="PropertyApi.property_get"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi.property_get">[docs]</a> <span class="k">def</span> <span class="nf">property_get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_type</span><span class="o">=</span><span class="n">GLOBAL_TYPE</span><span class="p">,</span> <span class="n">get_set</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Returns a list of Property objects</span>
@ -245,7 +245,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.service &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.service &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -204,7 +204,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.support &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api.support &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -153,7 +153,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.deploy &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.deploy &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -193,7 +193,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.exceptions &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.exceptions &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -104,7 +104,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.group &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.group &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -280,7 +280,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.host &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.host &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -379,7 +379,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.password &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.password &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -168,7 +168,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.property &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.property &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -103,6 +103,8 @@
<span class="k">try</span><span class="p">:</span>
<span class="n">property_name</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">propertyname</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">property_value</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">propertyvalue</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">property_dict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">property_dict</span><span class="p">[</span><span class="n">property_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">property_value</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hosts</span><span class="p">:</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
@ -112,16 +114,16 @@
<span class="n">host_names</span> <span class="o">=</span> <span class="n">_get_names</span><span class="p">(</span><span class="n">parsed_args</span><span class="o">.</span><span class="n">hosts</span><span class="p">)</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_set</span><span class="p">(</span><span class="n">property_name</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_set</span><span class="p">(</span><span class="n">property_dict</span><span class="p">,</span>
<span class="s">&#39;host&#39;</span><span class="p">,</span> <span class="n">host_names</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
<span class="n">group_names</span> <span class="o">=</span> <span class="n">_get_names</span><span class="p">(</span><span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="p">)</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_set</span><span class="p">(</span><span class="n">property_name</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_set</span><span class="p">(</span><span class="n">property_dict</span><span class="p">,</span>
<span class="s">&#39;group&#39;</span><span class="p">,</span> <span class="n">group_names</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_set</span><span class="p">(</span><span class="n">property_name</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_set</span><span class="p">(</span><span class="n">property_dict</span><span class="p">,</span>
<span class="s">&#39;global&#39;</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
@ -146,6 +148,8 @@
<div class="viewcode-block" id="PropertyClear.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertyClear.take_action">[docs]</a> <span class="k">def</span> <span class="nf">take_action</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parsed_args</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">property_name</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">propertyname</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">property_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hosts</span><span class="p">:</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
@ -155,15 +159,15 @@
<span class="n">host_names</span> <span class="o">=</span> <span class="n">_get_names</span><span class="p">(</span><span class="n">parsed_args</span><span class="o">.</span><span class="n">hosts</span><span class="p">)</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_clear</span><span class="p">(</span><span class="n">property_name</span><span class="p">,</span> <span class="s">&#39;host&#39;</span><span class="p">,</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_clear</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="s">&#39;host&#39;</span><span class="p">,</span>
<span class="n">host_names</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
<span class="n">group_names</span> <span class="o">=</span> <span class="n">_get_names</span><span class="p">(</span><span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="p">)</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_clear</span><span class="p">(</span><span class="n">property_name</span><span class="p">,</span> <span class="s">&#39;group&#39;</span><span class="p">,</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_clear</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="s">&#39;group&#39;</span><span class="p">,</span>
<span class="n">group_names</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_clear</span><span class="p">(</span><span class="n">property_name</span><span class="p">,</span> <span class="s">&#39;global&#39;</span><span class="p">)</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">property_clear</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="s">&#39;global&#39;</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">())</span>
@ -342,7 +346,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.service &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.service &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -209,7 +209,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.support &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.support &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -119,7 +119,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands.upgrade &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands.upgrade &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -132,7 +132,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.ansible.actions &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.ansible.actions &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../../index.html" />
<link rel="up" title="Module code" href="../../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -300,7 +300,7 @@
<li class="right" >
<a href="../../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.ansible.job &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.ansible.job &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../../index.html" />
<link rel="up" title="Module code" href="../../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -64,6 +64,7 @@
<span class="kn">import</span> <span class="nn">json</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">pwd</span>
<span class="kn">import</span> <span class="nn">subprocess</span> <span class="c"># nosec</span>
<span class="kn">import</span> <span class="nn">tempfile</span>
<span class="kn">import</span> <span class="nn">time</span>
@ -72,6 +73,12 @@
<span class="kn">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">remove_temp_inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_admin_uids</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_admin_user</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_ansible_lock_path</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_kolla_actions_path</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">Lock</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">PidManager</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">run_cmd</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">safe_decode</span>
<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
@ -106,9 +113,20 @@
<span class="bp">self</span><span class="o">.</span><span class="n">_process_std_err</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_errors</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_cmd_output</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_kill_uname</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_ansible_lock</span> <span class="o">=</span> <span class="n">Lock</span><span class="p">(</span><span class="n">get_ansible_lock_path</span><span class="p">(),</span> <span class="s">&#39;ansible_job&#39;</span><span class="p">)</span>
<div class="viewcode-block" id="AnsibleJob.run"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.job.AnsibleJob.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="k">try</span><span class="p">:</span>
<span class="n">locked</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ansible_lock</span><span class="o">.</span><span class="n">wait_acquire</span><span class="p">()</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">locked</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;unable to run ansible job {cmd} &#39;</span>
<span class="s">&#39;as we couldn</span><span class="se">\&#39;</span><span class="s">t get lock held by {owner}:{pid}.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">cmd</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_command</span><span class="p">,</span>
<span class="n">owner</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_ansible_lock</span><span class="o">.</span><span class="n">current_owner</span><span class="p">,</span>
<span class="n">pid</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_ansible_lock</span><span class="o">.</span><span class="n">current_pid</span><span class="p">))</span>
<span class="c"># create and open named pipe, must be owned by kolla group</span>
<span class="n">os</span><span class="o">.</span><span class="n">mkfifo</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_fifo_path</span><span class="p">,</span> <span class="mi">0</span><span class="n">o660</span><span class="p">)</span>
<span class="n">_</span><span class="p">,</span> <span class="n">grp_id</span> <span class="o">=</span> <span class="n">get_admin_uids</span><span class="p">()</span>
@ -122,6 +140,7 @@
<span class="n">stderr</span><span class="o">=</span><span class="n">subprocess</span><span class="o">.</span><span class="n">PIPE</span><span class="p">)</span>
<span class="c"># setup stdout to be read without blocking</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;process pid: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">pid</span><span class="p">)</span>
<span class="n">flags</span> <span class="o">=</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">fcntl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">F_GETFL</span><span class="p">)</span>
<span class="n">fcntl</span><span class="o">.</span><span class="n">fcntl</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span><span class="p">,</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">F_SETFL</span><span class="p">,</span>
<span class="p">(</span><span class="n">flags</span> <span class="o">|</span> <span class="n">os</span><span class="o">.</span><span class="n">O_NONBLOCK</span><span class="p">))</span>
@ -148,6 +167,7 @@
<span class="sd"> - None: running</span>
<span class="sd"> - 0: done, success</span>
<span class="sd"> - 1: done, error</span>
<span class="sd"> - 2: done, killed by user</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">status</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">poll</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_read_from_callback</span><span class="p">()</span>
@ -155,9 +175,15 @@
<span class="bp">self</span><span class="o">.</span><span class="n">_cmd_output</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">_cmd_output</span><span class="p">,</span> <span class="n">out</span><span class="p">])</span>
<span class="k">if</span> <span class="n">status</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
<span class="c"># job has completed</span>
<span class="n">status</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">returncode</span>
<span class="k">if</span> <span class="n">status</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">status</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_kill_uname</span><span class="p">:</span>
<span class="n">status</span> <span class="o">=</span> <span class="mi">2</span>
<span class="n">msg</span> <span class="o">=</span> <span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Job killed by user ({name})&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_kill_uname</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_errors</span> <span class="o">=</span> <span class="p">[</span><span class="n">msg</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">status</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">returncode</span>
<span class="k">if</span> <span class="n">status</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">status</span> <span class="o">=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process_std_err</span><span class="p">:</span>
<span class="c"># read stderr from process</span>
<span class="n">std_err</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_read_stream</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stderr</span><span class="p">)</span>
@ -182,6 +208,31 @@
<span class="sd"> get final output text from command execution</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_cmd_output</span>
</div>
<div class="viewcode-block" id="AnsibleJob.kill"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.job.AnsibleJob.kill">[docs]</a> <span class="k">def</span> <span class="nf">kill</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;kill job in progress</span>
<span class="sd"> The process pid is owned by root, so</span>
<span class="sd"> that is not killable. Need to kill all its children.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c"># the kill must be run as the kolla user so the</span>
<span class="c"># kolla_actions program must be used.</span>
<span class="n">actions_path</span> <span class="o">=</span> <span class="n">get_kolla_actions_path</span><span class="p">()</span>
<span class="n">kolla_user</span> <span class="o">=</span> <span class="n">get_admin_user</span><span class="p">()</span>
<span class="n">cmd_prefix</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;/usr/bin/sudo -u </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> job -t -p &#39;</span>
<span class="o">%</span> <span class="p">(</span><span class="n">kolla_user</span><span class="p">,</span> <span class="n">actions_path</span><span class="p">))</span>
<span class="c"># kill the children from largest to smallest pids.</span>
<span class="n">child_pids</span> <span class="o">=</span> <span class="n">PidManager</span><span class="o">.</span><span class="n">get_child_pids</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">pid</span><span class="p">)</span>
<span class="k">for</span> <span class="n">child_pid</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">child_pids</span><span class="p">,</span> <span class="n">reverse</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">cmd_prefix</span><span class="p">,</span> <span class="n">child_pid</span><span class="p">])</span>
<span class="n">err_msg</span><span class="p">,</span> <span class="n">output</span> <span class="o">=</span> <span class="n">run_cmd</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">print_output</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="k">if</span> <span class="n">err_msg</span><span class="p">:</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;kill failed: </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">err_msg</span><span class="p">,</span> <span class="n">output</span><span class="p">))</span>
<span class="c"># record the name of user who killed the job</span>
<span class="n">cur_uid</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">getuid</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_kill_uname</span> <span class="o">=</span> <span class="n">pwd</span><span class="o">.</span><span class="n">getpwuid</span><span class="p">(</span><span class="n">cur_uid</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</div>
<span class="k">def</span> <span class="nf">_read_stream</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">stream</span><span class="p">):</span>
<span class="n">out</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
@ -207,13 +258,18 @@
<span class="sd"> - close stdout and stderr</span>
<span class="sd"> - close and delete named pipe (fifo)</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="c"># try to clear the ansible lock</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_ansible_lock</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
<span class="c"># delete temp inventory file</span>
<span class="n">remove_temp_inventory</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_temp_inv_path</span><span class="p">)</span>
<span class="c"># close the process&#39;s stdout and stderr streams</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
<span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_process</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span> <span class="ow">and</span> <span class="ow">not</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">closed</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stdout</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stderr</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">closed</span><span class="p">:</span>
<span class="k">if</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_process</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stderr</span> <span class="ow">and</span> <span class="ow">not</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">closed</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_process</span><span class="o">.</span><span class="n">stderr</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="c"># close and delete the named pipe (fifo)</span>
@ -329,7 +385,7 @@
<span class="k">if</span> <span class="n">sub_errs</span><span class="p">:</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">err_msg</span><span class="p">,</span> <span class="s">&#39; [&#39;</span><span class="p">,</span> <span class="n">sub_errs</span><span class="p">,</span> <span class="s">&#39;]&#39;</span><span class="p">])</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">err_msg</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">err_msg</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">err_msg</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
<span class="c"># sometimes the error message is in std_out</span>
<span class="c"># eg- &quot;stdout&quot;: &#39;localhost | FAILED! =&gt; {&quot;changed&quot;: false,</span>
<span class="c"># &quot;failed&quot;: true, &quot;msg&quot;: &quot;...msg...&quot;}&#39;</span>
@ -340,6 +396,12 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">err_msg</span><span class="p">:</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="n">stdout</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">err_msg</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">err_msg</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
<span class="c"># if still no err_msg, provide entire result</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">results</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;unable to convert results to string&#39;</span> <span class="o">%</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
<span class="n">msg</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;Host: </span><span class="si">%s</span><span class="s">, Task: </span><span class="si">%s</span><span class="s">, Status: </span><span class="si">%s</span><span class="s">, Message: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span>
<span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">taskname</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">err_msg</span><span class="p">))</span>
<span class="k">return</span> <span class="n">msg</span>
@ -417,7 +479,7 @@
<li class="right" >
<a href="../../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.ansible.playbook &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.ansible.playbook &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../../index.html" />
<link rel="up" title="Module code" href="../../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -91,11 +91,9 @@
<span class="n">deploy_id</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">inventory</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="bp">self</span><span class="o">.</span><span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<div class="viewcode-block" id="AnsiblePlaybook.run"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.playbook.AnsiblePlaybook.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="k">try</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="n">inventory_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_make_temp_inventory</span><span class="p">()</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_playbook_cmd</span><span class="p">(</span><span class="n">inventory_path</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_log_ansible_cmd</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">inventory_path</span><span class="p">)</span>
@ -229,7 +227,7 @@
<li class="right" >
<a href="../../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.inventory &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.inventory &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -994,7 +994,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.passwords &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.passwords &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -68,7 +68,6 @@
<span class="kn">from</span> <span class="nn">kollacli.common</span> <span class="kn">import</span> <span class="n">utils</span>
<span class="n">PWDS_FILENAME</span> <span class="o">=</span> <span class="s">&#39;passwords.yml&#39;</span>
<span class="n">PWD_EDITOR_FILENAME</span> <span class="o">=</span> <span class="s">&#39;passwd_editor.py&#39;</span>
<div class="viewcode-block" id="set_password"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.passwords.set_password">[docs]</a><span class="k">def</span> <span class="nf">set_password</span><span class="p">(</span><span class="n">pwd_key</span><span class="p">,</span> <span class="n">pwd_value</span><span class="p">):</span>
@ -110,14 +109,12 @@
</div>
<span class="k">def</span> <span class="nf">_get_cmd_prefix</span><span class="p">():</span>
<span class="n">editor_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">utils</span><span class="o">.</span><span class="n">get_kollacli_home</span><span class="p">(),</span>
<span class="s">&#39;tools&#39;</span><span class="p">,</span>
<span class="n">PWD_EDITOR_FILENAME</span><span class="p">)</span>
<span class="n">actions_path</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">get_kolla_actions_path</span><span class="p">()</span>
<span class="n">pwd_file_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">utils</span><span class="o">.</span><span class="n">get_kolla_etc</span><span class="p">(),</span>
<span class="n">PWDS_FILENAME</span><span class="p">)</span>
<span class="n">user</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">get_admin_user</span><span class="p">()</span>
<span class="n">prefix</span> <span class="o">=</span> <span class="s">&#39;/usr/bin/sudo -u </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> -p </span><span class="si">%s</span><span class="s"> &#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">user</span><span class="p">,</span>
<span class="n">editor_path</span><span class="p">,</span> <span class="n">pwd_file_path</span><span class="p">)</span>
<span class="n">prefix</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;/usr/bin/sudo -u </span><span class="si">%s</span><span class="s"> </span><span class="si">%s</span><span class="s"> password -p </span><span class="si">%s</span><span class="s"> &#39;</span>
<span class="o">%</span> <span class="p">(</span><span class="n">user</span><span class="p">,</span> <span class="n">actions_path</span><span class="p">,</span> <span class="n">pwd_file_path</span><span class="p">))</span>
<span class="k">return</span> <span class="n">prefix</span>
</pre></div>
@ -152,7 +149,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.properties &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.properties &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -60,6 +60,7 @@
<span class="c"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c"># License for the specific language governing permissions and limitations</span>
<span class="c"># under the License.</span>
<span class="kn">import</span> <span class="nn">copy</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">six</span>
@ -291,14 +292,14 @@
<span class="n">new_contents</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
<span class="k">return</span> <span class="n">new_contents</span>
</div>
<div class="viewcode-block" id="AnsibleProperties.set_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_property">[docs]</a> <span class="k">def</span> <span class="nf">set_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span> <span class="n">property_value</span><span class="p">):</span>
<div class="viewcode-block" id="AnsibleProperties.set_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_property">[docs]</a> <span class="k">def</span> <span class="nf">set_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">change_property</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">globals_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span>
<span class="n">property_value</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">globals_path</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">,</span>
<span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
</div>
<div class="viewcode-block" id="AnsibleProperties.set_host_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_host_property">[docs]</a> <span class="k">def</span> <span class="nf">set_host_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span> <span class="n">hosts</span><span class="p">):</span>
<div class="viewcode-block" id="AnsibleProperties.set_host_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_host_property">[docs]</a> <span class="k">def</span> <span class="nf">set_host_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">,</span> <span class="n">hosts</span><span class="p">):</span>
<span class="c"># if hosts is None set the property on all hosts</span>
<span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="n">host_list</span> <span class="o">=</span> <span class="p">[]</span>
@ -313,12 +314,12 @@
<span class="k">try</span><span class="p">:</span>
<span class="k">for</span> <span class="n">host</span> <span class="ow">in</span> <span class="n">host_list</span><span class="p">:</span>
<span class="n">file_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">get_host_vars_dir</span><span class="p">(),</span> <span class="n">host</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span>
<span class="n">property_value</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">,</span>
<span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
</div>
<div class="viewcode-block" id="AnsibleProperties.set_group_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_group_property">[docs]</a> <span class="k">def</span> <span class="nf">set_group_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span> <span class="n">groups</span><span class="p">):</span>
<div class="viewcode-block" id="AnsibleProperties.set_group_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_group_property">[docs]</a> <span class="k">def</span> <span class="nf">set_group_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">,</span> <span class="n">groups</span><span class="p">):</span>
<span class="c"># if groups is None set the property on all hosts</span>
<span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="n">group_list</span> <span class="o">=</span> <span class="p">[]</span>
@ -332,20 +333,22 @@
<span class="n">group_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">group</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">group_list</span><span class="p">:</span>
<span class="n">tmp_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">property_dict</span><span class="p">)</span>
<span class="n">file_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">get_group_vars_dir</span><span class="p">(),</span> <span class="n">group</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span>
<span class="n">property_value</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">tmp_dict</span><span class="p">,</span>
<span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
</div>
<div class="viewcode-block" id="AnsibleProperties.clear_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.clear_property">[docs]</a> <span class="k">def</span> <span class="nf">clear_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_key</span><span class="p">):</span>
<div class="viewcode-block" id="AnsibleProperties.clear_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.clear_property">[docs]</a> <span class="k">def</span> <span class="nf">clear_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_list</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">change_property</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">globals_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">globals_path</span><span class="p">,</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_list_to_dict</span><span class="p">(</span><span class="n">property_list</span><span class="p">),</span>
<span class="n">clear</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
</div>
<div class="viewcode-block" id="AnsibleProperties.clear_host_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.clear_host_property">[docs]</a> <span class="k">def</span> <span class="nf">clear_host_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span> <span class="n">hosts</span><span class="p">):</span>
<div class="viewcode-block" id="AnsibleProperties.clear_host_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.clear_host_property">[docs]</a> <span class="k">def</span> <span class="nf">clear_host_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_list</span><span class="p">,</span> <span class="n">hosts</span><span class="p">):</span>
<span class="c"># if hosts is None set the property on all hosts</span>
<span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="n">host_list</span> <span class="o">=</span> <span class="p">[]</span>
@ -360,12 +363,12 @@
<span class="k">try</span><span class="p">:</span>
<span class="k">for</span> <span class="n">host</span> <span class="ow">in</span> <span class="n">host_list</span><span class="p">:</span>
<span class="n">file_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">get_host_vars_dir</span><span class="p">(),</span> <span class="n">host</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_list_to_dict</span><span class="p">(</span><span class="n">property_list</span><span class="p">),</span>
<span class="n">clear</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
</div>
<div class="viewcode-block" id="AnsibleProperties.clear_group_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.clear_group_property">[docs]</a> <span class="k">def</span> <span class="nf">clear_group_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span> <span class="n">groups</span><span class="p">):</span>
<div class="viewcode-block" id="AnsibleProperties.clear_group_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.clear_group_property">[docs]</a> <span class="k">def</span> <span class="nf">clear_group_property</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_list</span><span class="p">,</span> <span class="n">groups</span><span class="p">):</span>
<span class="c"># if hosts is None set the property on all hosts</span>
<span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</span><span class="o">.</span><span class="n">load</span><span class="p">()</span>
<span class="n">group_list</span> <span class="o">=</span> <span class="p">[]</span>
@ -380,12 +383,18 @@
<span class="k">try</span><span class="p">:</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">group_list</span><span class="p">:</span>
<span class="n">file_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">get_group_vars_dir</span><span class="p">(),</span> <span class="n">group</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_list_to_dict</span><span class="p">(</span><span class="n">property_list</span><span class="p">),</span>
<span class="n">clear</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
</div>
<span class="k">def</span> <span class="nf">_list_to_dict</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">property_list</span><span class="p">):</span>
<span class="n">property_dict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">property_list</span><span class="p">:</span>
<span class="n">property_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="k">return</span> <span class="n">property_dict</span>
</div></div>
</div>
<div class="viewcode-block" id="AnsibleProperty"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperty">[docs]</a><span class="k">class</span> <span class="nc">AnsibleProperty</span><span class="p">(</span><span class="nb">object</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">name</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">file_name</span><span class="p">,</span> <span class="n">overrides</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
@ -438,7 +447,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.sshutils &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.sshutils &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -176,7 +176,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.support &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.support &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -315,7 +315,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.utils &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.utils &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -60,6 +60,8 @@
<span class="c"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c"># License for the specific language governing permissions and limitations</span>
<span class="c"># under the License.</span>
<span class="kn">import</span> <span class="nn">copy</span>
<span class="kn">import</span> <span class="nn">fcntl</span>
<span class="kn">import</span> <span class="nn">grp</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
@ -104,6 +106,14 @@
<div class="viewcode-block" id="get_kolla_log_dir"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kolla_log_dir">[docs]</a><span class="k">def</span> <span class="nf">get_kolla_log_dir</span><span class="p">():</span>
<span class="k">return</span> <span class="s">&#39;/var/log/kolla/&#39;</span>
</div>
<div class="viewcode-block" id="get_ansible_lock_path"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_ansible_lock_path">[docs]</a><span class="k">def</span> <span class="nf">get_ansible_lock_path</span><span class="p">():</span>
<span class="k">return</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">get_kollacli_etc</span><span class="p">(),</span> <span class="s">&#39;ansible/ansible.lock&#39;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_kolla_actions_path"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kolla_actions_path">[docs]</a><span class="k">def</span> <span class="nf">get_kolla_actions_path</span><span class="p">():</span>
<span class="k">return</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">get_kollacli_home</span><span class="p">(),</span> <span class="s">&#39;tools&#39;</span><span class="p">,</span> <span class="s">&#39;kolla_actions.py&#39;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_admin_uids"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_admin_uids">[docs]</a><span class="k">def</span> <span class="nf">get_admin_uids</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;get uid and gid of admin user&quot;&quot;&quot;</span>
@ -216,12 +226,11 @@
<span class="k">return</span> <span class="n">err</span><span class="p">,</span> <span class="n">output</span>
</div>
<div class="viewcode-block" id="change_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.change_property">[docs]</a><span class="k">def</span> <span class="nf">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_key</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
<div class="viewcode-block" id="change_property"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.change_property">[docs]</a><span class="k">def</span> <span class="nf">change_property</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">property_dict</span><span class="p">,</span> <span class="n">clear</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;change property with a file</span>
<span class="sd"> file_path: path to property file</span>
<span class="sd"> property_key: property name</span>
<span class="sd"> property value: property value</span>
<span class="sd"> property_dict: dictionary of property names and values</span>
<span class="sd"> clear: flag to remove property</span>
<span class="sd"> If clear, and property exists, remove it from the property file.</span>
@ -230,6 +239,7 @@
<span class="sd"> If not clear, and key is found, edit property in place.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">cloned_dict</span> <span class="o">=</span> <span class="n">copy</span><span class="o">.</span><span class="n">copy</span><span class="p">(</span><span class="n">property_dict</span><span class="p">)</span>
<span class="n">group_info</span> <span class="o">=</span> <span class="n">grp</span><span class="o">.</span><span class="n">getgrnam</span><span class="p">(</span><span class="s">&#39;kolla&#39;</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">file_path</span><span class="p">):</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="s">&#39;a&#39;</span><span class="p">):</span>
@ -239,8 +249,6 @@
<span class="n">new_contents</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">read_data</span> <span class="o">=</span> <span class="n">sync_read_file</span><span class="p">(</span><span class="n">file_path</span><span class="p">)</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">read_data</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
<span class="n">new_line</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s">: &quot;</span><span class="si">%s</span><span class="s">&quot;&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">property_key</span><span class="p">,</span> <span class="n">property_value</span><span class="p">)</span>
<span class="n">property_key_found</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">last_line_empty</span> <span class="o">=</span> <span class="bp">False</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="n">line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
@ -257,17 +265,21 @@
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">split_line</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">split_key</span> <span class="o">=</span> <span class="n">split_line</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
<span class="n">split_key</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
<span class="k">if</span> <span class="n">split_key</span> <span class="o">==</span> <span class="n">property_key</span><span class="p">:</span>
<span class="n">property_key_found</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">if</span> <span class="n">split_key</span> <span class="ow">in</span> <span class="n">cloned_dict</span><span class="p">:</span>
<span class="k">if</span> <span class="n">clear</span><span class="p">:</span>
<span class="c"># clear existing property</span>
<span class="k">continue</span>
<span class="c"># edit existing property</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">new_line</span>
<span class="n">line</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s">: &quot;</span><span class="si">%s</span><span class="s">&quot;&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">split_key</span><span class="p">,</span> <span class="n">cloned_dict</span><span class="p">[</span><span class="n">split_key</span><span class="p">])</span>
<span class="c"># clear out the key after we are done, all existing keys</span>
<span class="c"># will be appended at the end (or for clear, ignored)</span>
<span class="k">del</span> <span class="n">cloned_dict</span><span class="p">[</span><span class="n">split_key</span><span class="p">]</span>
<span class="n">new_contents</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">property_key_found</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">clear</span><span class="p">:</span>
<span class="c"># add new property to file</span>
<span class="n">new_contents</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">new_line</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">clear</span><span class="p">:</span>
<span class="c"># add new properties to file</span>
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">cloned_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">line</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s">: &quot;</span><span class="si">%s</span><span class="s">&quot;&#39;</span> <span class="o">%</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="n">new_contents</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="n">write_data</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">new_contents</span><span class="p">)</span>
<span class="n">sync_write_file</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="n">write_data</span><span class="p">)</span>
@ -283,14 +295,13 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">lock</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">lock</span> <span class="o">=</span> <span class="n">Lock</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s">&#39;.lock&#39;</span><span class="p">,</span> <span class="s">&#39;sync_read&#39;</span><span class="p">)</span>
<span class="n">locked</span> <span class="o">=</span> <span class="n">lock</span><span class="o">.</span><span class="n">wait_acquire</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">lock</span> <span class="o">=</span> <span class="n">Lock</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s">&#39;sync_read&#39;</span><span class="p">)</span>
<span class="n">locked</span> <span class="o">=</span> <span class="n">lock</span><span class="o">.</span><span class="n">wait_acquire</span><span class="p">()</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">locked</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;unable to read file {path} &#39;</span>
<span class="s">&#39;as it was locked by {owner}:{pid}.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> <span class="n">owner</span><span class="o">=</span><span class="n">lock</span><span class="o">.</span><span class="n">current_owner</span><span class="p">,</span>
<span class="n">pid</span><span class="o">=</span><span class="n">lock</span><span class="o">.</span><span class="n">current_pid</span><span class="p">))</span>
<span class="s">&#39;as it was locked.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">))</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span> <span class="k">as</span> <span class="n">data_file</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">data_file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@ -298,34 +309,44 @@
<span class="k">finally</span><span class="p">:</span>
<span class="k">if</span> <span class="n">lock</span><span class="p">:</span>
<span class="n">lock</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
<span class="k">return</span> <span class="n">data</span>
<span class="k">return</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="sync_write_file"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.sync_write_file">[docs]</a><span class="k">def</span> <span class="nf">sync_write_file</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">&#39;w&#39;</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;synchronously write file&quot;&quot;&quot;</span>
<span class="n">ansible_lock</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">lock</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">lock</span> <span class="o">=</span> <span class="n">Lock</span><span class="p">(</span><span class="n">path</span> <span class="o">+</span> <span class="s">&#39;.lock&#39;</span><span class="p">,</span> <span class="s">&#39;sync_write&#39;</span><span class="p">)</span>
<span class="n">locked</span> <span class="o">=</span> <span class="n">lock</span><span class="o">.</span><span class="n">wait_acquire</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
<span class="n">ansible_lock</span> <span class="o">=</span> <span class="n">Lock</span><span class="p">(</span><span class="n">get_ansible_lock_path</span><span class="p">(),</span> <span class="s">&#39;sync_write&#39;</span><span class="p">)</span>
<span class="n">locked</span> <span class="o">=</span> <span class="n">ansible_lock</span><span class="o">.</span><span class="n">wait_acquire</span><span class="p">()</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">locked</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;unable to get ansible lock while writing to {path} &#39;</span>
<span class="s">&#39;as it was locked.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">))</span>
<span class="n">lock</span> <span class="o">=</span> <span class="n">Lock</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="s">&#39;sync_write&#39;</span><span class="p">)</span>
<span class="n">locked</span> <span class="o">=</span> <span class="n">lock</span><span class="o">.</span><span class="n">wait_acquire</span><span class="p">()</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">locked</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;unable to write file {path} &#39;</span>
<span class="s">&#39;as it was locked by {owner}:{pid}.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> <span class="n">owner</span><span class="o">=</span><span class="n">lock</span><span class="o">.</span><span class="n">current_owner</span><span class="p">,</span>
<span class="n">pid</span><span class="o">=</span><span class="n">lock</span><span class="o">.</span><span class="n">current_pid</span><span class="p">))</span>
<span class="s">&#39;as it was locked.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">))</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="p">)</span> <span class="k">as</span> <span class="n">data_file</span><span class="p">:</span>
<span class="n">data_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">e</span>
<span class="k">finally</span><span class="p">:</span>
<span class="k">if</span> <span class="n">ansible_lock</span><span class="p">:</span>
<span class="n">ansible_lock</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
<span class="k">if</span> <span class="n">lock</span><span class="p">:</span>
<span class="n">lock</span><span class="o">.</span><span class="n">release</span><span class="p">()</span>
</div>
<div class="viewcode-block" id="safe_decode"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.safe_decode">[docs]</a><span class="k">def</span> <span class="nf">safe_decode</span><span class="p">(</span><span class="n">obj_to_decode</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Convert bytes or string to unicode string</span>
<span class="sd">&quot;&quot;&quot;Convert bytes or strings to unicode string</span>
<span class="sd"> Convert either a string or list of strings to</span>
<span class="sd"> Converts strings, lists, or dictionaries to</span>
<span class="sd"> unicode.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">obj_to_decode</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
@ -335,12 +356,15 @@
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj_to_decode</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
<span class="n">new_obj</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">obj_to_decode</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&#39;utf-8&#39;</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="c"># nosec</span>
<span class="c"># py3 will raise if text is already a string</span>
<span class="k">pass</span>
<span class="n">text</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
<span class="n">new_obj</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">text</span><span class="p">)</span>
<span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj_to_decode</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span>
<span class="n">new_obj</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">obj_to_decode</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">key</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
<span class="n">value</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
<span class="n">new_obj</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">value</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">new_obj</span> <span class="o">=</span> <span class="n">obj_to_decode</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="s">&#39;utf-8&#39;</span><span class="p">)</span>
@ -381,29 +405,52 @@
</div>
<div class="viewcode-block" id="Lock"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.Lock">[docs]</a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Object which represents an exclusive resource lock</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">lockpath</span><span class="p">,</span> <span class="n">owner</span><span class="o">=</span><span class="s">&#39;unknown owner&#39;</span><span class="p">):</span>
<span class="sd"> flock usage is the default behavior but a separate pidfile mechanism</span>
<span class="sd"> is also available. flock doesn&#39;t have the same orphaned lock issue</span>
<span class="sd"> that pidfile usage does. both need to be tests on NFS. if flock</span>
<span class="sd"> works then it seems better / less complicated for our needs.</span>
<span class="sd"> &quot;&quot;&quot;</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">lockpath</span><span class="p">,</span> <span class="n">owner</span><span class="o">=</span><span class="s">&#39;unknown owner&#39;</span><span class="p">,</span> <span class="n">use_flock</span><span class="o">=</span><span class="bp">True</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span> <span class="o">=</span> <span class="n">lockpath</span>
<span class="bp">self</span><span class="o">.</span><span class="n">pid</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">getpid</span><span class="p">())</span>
<span class="bp">self</span><span class="o">.</span><span class="n">fd</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">owner</span> <span class="o">=</span> <span class="n">owner</span>
<span class="bp">self</span><span class="o">.</span><span class="n">current_pid</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
<span class="bp">self</span><span class="o">.</span><span class="n">current_owner</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">use_flock</span> <span class="o">=</span> <span class="n">use_flock</span>
<div class="viewcode-block" id="Lock.acquire"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.Lock.acquire">[docs]</a> <span class="k">def</span> <span class="nf">acquire</span><span class="p">(</span><span class="bp">self</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">is_owned_by_me</span><span class="p">():</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">O_CREAT</span> <span class="o">|</span> <span class="n">os</span><span class="o">.</span><span class="n">O_EXCL</span> <span class="o">|</span> <span class="n">os</span><span class="o">.</span><span class="n">O_RDWR</span><span class="p">)</span>
<span class="k">with</span> <span class="n">os</span><span class="o">.</span><span class="n">fdopen</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span> <span class="s">&#39;a&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pid</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_owned_by_me</span><span class="p">()</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">use_flock</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_acquire_flock</span><span class="p">()</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">_acquire_pidfile</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</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="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">):</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s">&#39;Lock file (</span><span class="si">%s</span><span class="s">) is missing&#39;</span>
<span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">)</span>
<span class="c"># it is ok to fail to acquire, we just return that we failed</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Exception in is_owned_by_me lock check &#39;</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Exception in acquire lock. &#39;</span>
<span class="s">&#39;path: </span><span class="si">%s</span><span class="s"> pid: </span><span class="si">%s</span><span class="s"> owner: </span><span class="si">%s</span><span class="s"> error: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span>
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">pid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
<span class="k">return</span> <span class="bp">False</span>
</div>
<div class="viewcode-block" id="Lock.wait_acquire"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.Lock.wait_acquire">[docs]</a> <span class="k">def</span> <span class="nf">wait_acquire</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wait_duration</span><span class="p">,</span> <span class="n">interval</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">_acquire_pidfile</span><span class="p">(</span><span class="bp">self</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">is_owned_by_me</span><span class="p">():</span>
<span class="n">fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">O_CREAT</span> <span class="o">|</span> <span class="n">os</span><span class="o">.</span><span class="n">O_EXCL</span> <span class="o">|</span> <span class="n">os</span><span class="o">.</span><span class="n">O_RDWR</span><span class="p">)</span>
<span class="k">with</span> <span class="n">os</span><span class="o">.</span><span class="n">fdopen</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span> <span class="s">&#39;a&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">pid</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_owned_by_me</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">_acquire_flock</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">fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">O_RDWR</span><span class="p">)</span>
<span class="n">fcntl</span><span class="o">.</span><span class="n">flock</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="p">,</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">LOCK_EX</span> <span class="o">|</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">LOCK_NB</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">True</span>
<div class="viewcode-block" id="Lock.wait_acquire"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.Lock.wait_acquire">[docs]</a> <span class="k">def</span> <span class="nf">wait_acquire</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">wait_duration</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> <span class="n">interval</span><span class="o">=</span><span class="mf">0.1</span><span class="p">):</span>
<span class="n">wait_time</span> <span class="o">=</span> <span class="mi">0</span>
<span class="k">while</span> <span class="p">(</span><span class="n">wait_time</span> <span class="o">&lt;</span> <span class="n">wait_duration</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">acquire</span><span class="p">():</span>
@ -416,7 +463,14 @@
<div class="viewcode-block" id="Lock.is_owned_by_me"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.Lock.is_owned_by_me">[docs]</a> <span class="k">def</span> <span class="nf">is_owned_by_me</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Returns True if we own the lock or False otherwise&quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">O_RDWR</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">use_flock</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Invalid use of is_owned_by_me while&#39;</span>
<span class="s">&#39;using flock&#39;</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="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">):</span>
<span class="c"># lock doesn&#39;t exist, just return</span>
<span class="k">return</span> <span class="bp">False</span>
<span class="n">fd</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="n">os</span><span class="o">.</span><span class="n">O_RDONLY</span><span class="p">)</span>
<span class="k">with</span> <span class="n">os</span><span class="o">.</span><span class="n">fdopen</span><span class="p">(</span><span class="n">fd</span><span class="p">,</span> <span class="s">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
<span class="n">contents</span> <span class="o">=</span> <span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="mi">2048</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">contents</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
@ -430,25 +484,61 @@
<span class="k">return</span> <span class="bp">False</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="c"># it is ok to fail to acquire, we just return that we failed</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Exception in is_owned_by_me lock check &#39;</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;Exception in is_owned_by_me lock check. &#39;</span>
<span class="s">&#39;path: </span><span class="si">%s</span><span class="s"> pid: </span><span class="si">%s</span><span class="s"> owner: </span><span class="si">%s</span><span class="s"> error: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span>
<span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">pid</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="p">,</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">)))</span>
<span class="k">return</span> <span class="bp">False</span>
</div>
<div class="viewcode-block" id="Lock.release"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.Lock.release">[docs]</a> <span class="k">def</span> <span class="nf">release</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">use_flock</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_release_flock</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">_release_pidfile</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="c"># this really shouldn&#39;t happen unless for some reason</span>
<span class="c"># two areas in the same process try to release the lock</span>
<span class="c"># at the same time and if that happens you want to see</span>
<span class="c"># an error about it</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&#39;Error releasing lock&#39;</span><span class="p">,</span> <span class="n">exc_info</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">False</span>
</div>
<span class="k">def</span> <span class="nf">_release_pidfile</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_owned_by_me</span><span class="p">():</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">True</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="c"># this really shouldn&#39;t happen unless for some reason</span>
<span class="c"># two areas in the same process try to release the lock</span>
<span class="c"># at the same time and if that happens you want to see</span>
<span class="c"># an error about it</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s">&#39;Error releasing lock&#39;</span><span class="p">,</span> <span class="n">exc_info</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">False</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">False</span></div></div>
<span class="n">os</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lockpath</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">True</span>
<span class="k">def</span> <span class="nf">_release_flock</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">fcntl</span><span class="o">.</span><span class="n">flock</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">fd</span><span class="p">,</span> <span class="n">fcntl</span><span class="o">.</span><span class="n">LOCK_UN</span><span class="p">)</span>
<span class="n">os</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">fd</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">True</span>
</div>
<div class="viewcode-block" id="PidManager"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.PidManager">[docs]</a><span class="k">class</span> <span class="nc">PidManager</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="nd">@staticmethod</span>
<div class="viewcode-block" id="PidManager.get_child_pids"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.PidManager.get_child_pids">[docs]</a> <span class="k">def</span> <span class="nf">get_child_pids</span><span class="p">(</span><span class="n">pid</span><span class="p">,</span> <span class="n">child_pids</span><span class="o">=</span><span class="p">[]):</span>
<span class="sd">&quot;&quot;&quot;get child pids of parent pid&quot;&quot;&quot;</span>
<span class="c"># This ps command will return child pids of parent pid, separated by</span>
<span class="c"># newlines.</span>
<span class="n">err_msg</span><span class="p">,</span> <span class="n">output</span> <span class="o">=</span> <span class="n">run_cmd</span><span class="p">(</span><span class="s">&#39;ps --ppid </span><span class="si">%s</span><span class="s"> -o pid=&quot;&quot;&#39;</span> <span class="o">%</span> <span class="n">pid</span><span class="p">,</span>
<span class="n">print_output</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="c"># err_msg is expected when pid has no children</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">err_msg</span><span class="p">:</span>
<span class="n">output</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="k">if</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span> <span class="ow">in</span> <span class="n">output</span><span class="p">:</span>
<span class="n">ps_pids</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">ps_pids</span> <span class="o">=</span> <span class="p">[</span><span class="n">output</span><span class="p">]</span>
<span class="k">if</span> <span class="n">ps_pids</span><span class="p">:</span>
<span class="n">child_pids</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ps_pids</span><span class="p">)</span>
<span class="c"># recurse through children to get all child pids</span>
<span class="k">for</span> <span class="n">ps_pid</span> <span class="ow">in</span> <span class="n">ps_pids</span><span class="p">:</span>
<span class="n">PidManager</span><span class="o">.</span><span class="n">get_child_pids</span><span class="p">(</span><span class="n">ps_pid</span><span class="p">,</span> <span class="n">child_pids</span><span class="p">)</span>
<span class="k">return</span> <span class="n">child_pids</span></div></div>
</pre></div>
</div>
@ -482,7 +572,7 @@
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.shell &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.shell &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="../../index.html" />
<link rel="up" title="Module code" href="../index.html" />
</head>
<body>
@ -36,7 +36,7 @@
<li class="right" >
<a href="../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -70,10 +70,9 @@
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
<span class="kn">from</span> <span class="nn">kollacli.api.client</span> <span class="kn">import</span> <span class="n">ClientApi</span>
<span class="kn">from</span> <span class="nn">kollacli.commands.exceptions</span> <span class="kn">import</span> <span class="n">CommandError</span>
<span class="kn">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">INVENTORY_PATH</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_kolla_log_dir</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_kolla_log_file_size</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_kollacli_etc</span>
<span class="n">LOG</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">__name__</span><span class="p">)</span>
@ -96,43 +95,16 @@
<span class="s">&#39;recreate the file.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">inventory</span><span class="o">=</span><span class="n">inventory_path</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">CommandError</span><span class="p">(</span><span class="n">err_string</span><span class="p">)</span>
<span class="c"># check that current user can access the inventory file</span>
<span class="n">inventory_file</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">inventory_file</span> <span class="o">=</span> <span class="nb">open</span><span class="p">(</span><span class="n">inventory_path</span><span class="p">,</span> <span class="s">&#39;r+&#39;</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</span><span class="p">(</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Permission denied to run the kollacli.</span><span class="se">\n</span><span class="s">&#39;</span>
<span class="s">&#39;Please add user to the kolla group and &#39;</span>
<span class="s">&#39;then log out and back in.&#39;</span><span class="p">))</span>
<span class="k">finally</span><span class="p">:</span>
<span class="k">if</span> <span class="n">inventory_file</span> <span class="ow">and</span> <span class="n">inventory_file</span><span class="o">.</span><span class="n">close</span> <span class="ow">is</span> <span class="bp">False</span><span class="p">:</span>
<span class="n">inventory_file</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="c"># set up logging and test that user running shell is part</span>
<span class="c"># of kolla group</span>
<span class="n">ClientApi</span><span class="p">()</span>
<span class="c"># paramiko log is very chatty, tune it down</span>
<span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">&#39;paramiko&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">WARNING</span><span class="p">)</span>
<span class="c"># set up logging</span>
<span class="bp">self</span><span class="o">.</span><span class="n">rotating_log_dir</span> <span class="o">=</span> <span class="n">get_kolla_log_dir</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">max_bytes</span> <span class="o">=</span> <span class="n">get_kolla_log_file_size</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">backup_count</span> <span class="o">=</span> <span class="mi">4</span>
<span class="bp">self</span><span class="o">.</span><span class="n">dump_stack_trace</span> <span class="o">=</span> <span class="bp">False</span>
<span class="bp">self</span><span class="o">.</span><span class="n">add_rotational_log</span><span class="p">()</span>
<div class="viewcode-block" id="KollaCli.add_rotational_log"><a class="viewcode-back" href="../../kollacli.html#kollacli.shell.KollaCli.add_rotational_log">[docs]</a> <span class="k">def</span> <span class="nf">add_rotational_log</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">root_logger</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">getLogger</span><span class="p">(</span><span class="s">&#39;&#39;</span><span class="p">)</span>
<span class="n">rotate_handler</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">handlers</span><span class="o">.</span><span class="n">RotatingFileHandler</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">join</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">rotating_log_dir</span><span class="p">,</span> <span class="s">&#39;kolla.log&#39;</span><span class="p">),</span>
<span class="n">maxBytes</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">max_bytes</span><span class="p">,</span>
<span class="n">backupCount</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">backup_count</span><span class="p">)</span>
<span class="n">formatter</span> <span class="o">=</span> <span class="n">logging</span><span class="o">.</span><span class="n">Formatter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">LOG_FILE_MESSAGE_FORMAT</span><span class="p">)</span>
<span class="n">rotate_handler</span><span class="o">.</span><span class="n">setFormatter</span><span class="p">(</span><span class="n">formatter</span><span class="p">)</span>
<span class="n">rotate_handler</span><span class="o">.</span><span class="n">setLevel</span><span class="p">(</span><span class="n">logging</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span>
<span class="n">root_logger</span><span class="o">.</span><span class="n">addHandler</span><span class="p">(</span><span class="n">rotate_handler</span><span class="p">)</span>
</div></div>
</div>
<div class="viewcode-block" id="main"><a class="viewcode-back" href="../../kollacli.html#kollacli.shell.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">(</span><span class="n">argv</span><span class="o">=</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">:]):</span>
<span class="n">shell</span> <span class="o">=</span> <span class="n">KollaCli</span><span class="p">()</span>
<span class="k">return</span> <span class="n">shell</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">argv</span><span class="p">)</span>
@ -172,7 +144,7 @@
<li class="right" >
<a href="../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="../../index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
<li><a href="../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -7,7 +7,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Index &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>Index &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -15,7 +15,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -24,7 +24,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -36,7 +36,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -113,10 +113,6 @@
</dl></dd>
<dt><a href="kollacli.html#kollacli.shell.KollaCli.add_rotational_log">add_rotational_log() (kollacli.shell.KollaCli method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.group.GroupApi.Group.add_service">add_service() (kollacli.api.group.GroupApi.Group method)</a>
</dt>
@ -313,6 +309,12 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.api.html#kollacli.api.client.ClientApi.enable_console_logging">enable_console_logging() (kollacli.api.client.ClientApi method)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.ansible.html#kollacli.common.ansible.playbook.AnsiblePlaybook.extra_vars">extra_vars (kollacli.common.ansible.playbook.AnsiblePlaybook attribute)</a>
</dt>
@ -375,6 +377,14 @@
</dt>
<dt><a href="kollacli.common.html#kollacli.common.utils.get_ansible_lock_path">get_ansible_lock_path() (in module kollacli.common.utils)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.utils.PidManager.get_child_pids">get_child_pids() (kollacli.common.utils.PidManager static method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_children">get_children() (kollacli.api.service.ServiceApi.Service method)</a>
</dt>
@ -481,6 +491,10 @@
</dl></dd>
<dt><a href="kollacli.common.html#kollacli.common.utils.get_kolla_actions_path">get_kolla_actions_path() (in module kollacli.common.utils)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.utils.get_kolla_etc">get_kolla_etc() (in module kollacli.common.utils)</a>
</dt>
@ -504,6 +518,8 @@
<dt><a href="kollacli.common.html#kollacli.common.utils.get_kollacli_home">get_kollacli_home() (in module kollacli.common.utils)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.html#kollacli.common.support.HostLogs.get_log">get_log() (kollacli.common.support.HostLogs method)</a>
</dt>
@ -512,8 +528,6 @@
<dt><a href="kollacli.common.html#kollacli.common.support.get_logs">get_logs() (in module kollacli.common.support)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.api.html#kollacli.api.group.GroupApi.Group.get_name">get_name() (kollacli.api.group.GroupApi.Group method)</a>
</dt>
@ -901,6 +915,16 @@
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.api.html#kollacli.api.job.Job.kill">kill() (kollacli.api.job.Job method)</a>
</dt>
<dd><dl>
<dt><a href="kollacli.common.ansible.html#kollacli.common.ansible.job.AnsibleJob.kill">(kollacli.common.ansible.job.AnsibleJob method)</a>
</dt>
</dl></dd>
<dt><a href="kollacli.html#kollacli.shell.KollaCli">KollaCli (class in kollacli.shell)</a>
</dt>
@ -972,12 +996,12 @@
<dt><a href="kollacli.commands.html#module-kollacli.commands.group">kollacli.commands.group (module)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.commands.html#module-kollacli.commands.host">kollacli.commands.host (module)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.commands.html#module-kollacli.commands.password">kollacli.commands.password (module)</a>
</dt>
@ -1141,6 +1165,10 @@
</dt>
<dt><a href="kollacli.common.html#kollacli.common.utils.PidManager">PidManager (class in kollacli.common.utils)</a>
</dt>
<dt><a href="kollacli.common.ansible.html#kollacli.common.ansible.playbook.AnsiblePlaybook.playbook_path">playbook_path (kollacli.common.ansible.playbook.AnsiblePlaybook attribute)</a>
</dt>
@ -1669,7 +1697,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Welcome to kollaclis documentation! &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>Welcome to kollaclis documentation! &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="#" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="#" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="#">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="#">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -104,7 +104,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="#">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="#">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api package &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.api package &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -160,6 +160,15 @@ already been deployed to.
<tt class="descname">base_call</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/client.html#ClientApi.base_call"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.client.ClientApi.base_call" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="kollacli.api.client.ClientApi.enable_console_logging">
<tt class="descname">enable_console_logging</tt><big>(</big><em>level</em>, <em>enable=True</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/client.html#ClientApi.enable_console_logging"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.client.ClientApi.enable_console_logging" title="Permalink to this definition"></a></dt>
<dd><p>enable/disable console logging for the api</p>
<p>enable: True/False
level: logging.INFO, logging.DEBUG, logging.WARNING,
logging.CRITICAL...</p>
</dd></dl>
</dd></dl>
</div>
@ -638,7 +647,10 @@ The uname entry is optional.</p>
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None if job still running, 0 if job succeeded, 1 if job failed</td>
<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">None: job is still running
0: job succeeded
1: job failed
2: job killed by user</td>
</tr>
<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">int or None</td>
</tr>
@ -646,6 +658,12 @@ The uname entry is optional.</p>
</table>
</dd></dl>
<dl class="method">
<dt id="kollacli.api.job.Job.kill">
<tt class="descname">kill</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/job.html#Job.kill"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.job.Job.kill" title="Permalink to this definition"></a></dt>
<dd><p>kill the job</p>
</dd></dl>
<dl class="method">
<dt id="kollacli.api.job.Job.wait">
<tt class="descname">wait</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/job.html#Job.wait"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.job.Job.wait" title="Permalink to this definition"></a></dt>
@ -753,14 +771,14 @@ The uname entry is optional.</p>
<dl class="method">
<dt id="kollacli.api.properties.PropertyApi.property_clear">
<tt class="descclassname">PropertyApi.</tt><tt class="descname">property_clear</tt><big>(</big><em>key</em>, <em>property_type='global'</em>, <em>change_set=None</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi.property_clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi.property_clear" title="Permalink to this definition"></a></dt>
<tt class="descclassname">PropertyApi.</tt><tt class="descname">property_clear</tt><big>(</big><em>property_list</em>, <em>property_type='global'</em>, <em>change_set=None</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi.property_clear"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi.property_clear" title="Permalink to this definition"></a></dt>
<dd><p>Clear a property</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>key</strong> (<em>string</em>) &#8211; property key</li>
<li><strong>property_list</strong> (<em>list</em>) &#8211; property list</li>
<li><strong>property_type</strong> (<em>string</em>) &#8211; one of &#8216;global&#8217;, &#8216;group&#8217; or &#8216;host&#8217;</li>
<li><strong>change_set</strong> (<em>list of strings</em>) &#8211; for group or host clears this is the list of
groups or hosts to clear the property for</li>
@ -798,15 +816,14 @@ getting group or host related property lists</li>
<dl class="method">
<dt id="kollacli.api.properties.PropertyApi.property_set">
<tt class="descclassname">PropertyApi.</tt><tt class="descname">property_set</tt><big>(</big><em>key</em>, <em>value</em>, <em>property_type='global'</em>, <em>change_set=None</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi.property_set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi.property_set" title="Permalink to this definition"></a></dt>
<tt class="descclassname">PropertyApi.</tt><tt class="descname">property_set</tt><big>(</big><em>property_dict</em>, <em>property_type='global'</em>, <em>change_set=None</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi.property_set"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi.property_set" title="Permalink to this definition"></a></dt>
<dd><p>Set a property</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>key</strong> (<em>string</em>) &#8211; property key</li>
<li><strong>value</strong> (<em>string</em>) &#8211; property value</li>
<li><strong>property_dict</strong> (<em>dictionary</em>) &#8211; property dictionary containing key / values</li>
<li><strong>property_type</strong> (<em>string</em>) &#8211; one of &#8216;global&#8217;, &#8216;group&#8217; or &#8216;host&#8217;</li>
<li><strong>change_set</strong> (<em>list of strings</em>) &#8211; for group or host sets this is the list of groups
or hosts to set the property for</li>
@ -1081,7 +1098,7 @@ names for each log will be servicename_id.log.</p>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.commands package &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.commands package &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -601,7 +601,7 @@ debugging problems.</p>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common.ansible package &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common.ansible package &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -104,7 +104,16 @@ which can either be &#8216;stop&#8217; or &#8216;kill&#8217;.</p>
<p>status:
- None: running
- 0: done, success
- 1: done, error</p>
- 1: done, error
- 2: done, killed by user</p>
</dd></dl>
<dl class="method">
<dt id="kollacli.common.ansible.job.AnsibleJob.kill">
<tt class="descname">kill</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/ansible/job.html#AnsibleJob.kill"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.ansible.job.AnsibleJob.kill" title="Permalink to this definition"></a></dt>
<dd><p>kill job in progress</p>
<p>The process pid is owned by root, so
that is not killable. Need to kill all its children.</p>
</dd></dl>
<dl class="method">
@ -250,7 +259,7 @@ which can either be &#8216;stop&#8217; or &#8216;kill&#8217;.</p>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.common package &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli.common package &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -568,17 +568,17 @@ If it doesn&#8217;t exist, a new password will be added.</p>
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
<dl class="method">
<dt id="kollacli.common.properties.AnsibleProperties.clear_group_property">
<tt class="descname">clear_group_property</tt><big>(</big><em>property_key</em>, <em>groups</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.clear_group_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.clear_group_property" title="Permalink to this definition"></a></dt>
<tt class="descname">clear_group_property</tt><big>(</big><em>property_list</em>, <em>groups</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.clear_group_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.clear_group_property" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="kollacli.common.properties.AnsibleProperties.clear_host_property">
<tt class="descname">clear_host_property</tt><big>(</big><em>property_key</em>, <em>hosts</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.clear_host_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.clear_host_property" title="Permalink to this definition"></a></dt>
<tt class="descname">clear_host_property</tt><big>(</big><em>property_list</em>, <em>hosts</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.clear_host_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.clear_host_property" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="kollacli.common.properties.AnsibleProperties.clear_property">
<tt class="descname">clear_property</tt><big>(</big><em>property_key</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.clear_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.clear_property" title="Permalink to this definition"></a></dt>
<tt class="descname">clear_property</tt><big>(</big><em>property_list</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.clear_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.clear_property" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
@ -618,17 +618,17 @@ If it doesn&#8217;t exist, a new password will be added.</p>
<dl class="method">
<dt id="kollacli.common.properties.AnsibleProperties.set_group_property">
<tt class="descname">set_group_property</tt><big>(</big><em>property_key</em>, <em>property_value</em>, <em>groups</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.set_group_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.set_group_property" title="Permalink to this definition"></a></dt>
<tt class="descname">set_group_property</tt><big>(</big><em>property_dict</em>, <em>groups</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.set_group_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.set_group_property" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="kollacli.common.properties.AnsibleProperties.set_host_property">
<tt class="descname">set_host_property</tt><big>(</big><em>property_key</em>, <em>property_value</em>, <em>hosts</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.set_host_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.set_host_property" title="Permalink to this definition"></a></dt>
<tt class="descname">set_host_property</tt><big>(</big><em>property_dict</em>, <em>hosts</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.set_host_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.set_host_property" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="method">
<dt id="kollacli.common.properties.AnsibleProperties.set_property">
<tt class="descname">set_property</tt><big>(</big><em>property_key</em>, <em>property_value</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.set_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.set_property" title="Permalink to this definition"></a></dt>
<tt class="descname">set_property</tt><big>(</big><em>property_dict</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties.set_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties.set_property" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
@ -721,8 +721,13 @@ debugging problems.</p>
<span id="kollacli-common-utils-module"></span><h2>kollacli.common.utils module<a class="headerlink" href="#module-kollacli.common.utils" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="kollacli.common.utils.Lock">
<em class="property">class </em><tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">Lock</tt><big>(</big><em>lockpath</em>, <em>owner='unknown owner'</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#Lock"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.Lock" title="Permalink to this definition"></a></dt>
<em class="property">class </em><tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">Lock</tt><big>(</big><em>lockpath</em>, <em>owner='unknown owner'</em>, <em>use_flock=True</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#Lock"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.Lock" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
<p>Object which represents an exclusive resource lock</p>
<p>flock usage is the default behavior but a separate pidfile mechanism
is also available. flock doesn&#8217;t have the same orphaned lock issue
that pidfile usage does. both need to be tests on NFS. if flock
works then it seems better / less complicated for our needs.</p>
<dl class="method">
<dt id="kollacli.common.utils.Lock.acquire">
<tt class="descname">acquire</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#Lock.acquire"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.Lock.acquire" title="Permalink to this definition"></a></dt>
@ -741,18 +746,29 @@ debugging problems.</p>
<dl class="method">
<dt id="kollacli.common.utils.Lock.wait_acquire">
<tt class="descname">wait_acquire</tt><big>(</big><em>wait_duration</em>, <em>interval=0.1</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#Lock.wait_acquire"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.Lock.wait_acquire" title="Permalink to this definition"></a></dt>
<tt class="descname">wait_acquire</tt><big>(</big><em>wait_duration=3</em>, <em>interval=0.1</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#Lock.wait_acquire"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.Lock.wait_acquire" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="class">
<dt id="kollacli.common.utils.PidManager">
<em class="property">class </em><tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">PidManager</tt><a class="reference internal" href="_modules/kollacli/common/utils.html#PidManager"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.PidManager" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
<dl class="staticmethod">
<dt id="kollacli.common.utils.PidManager.get_child_pids">
<em class="property">static </em><tt class="descname">get_child_pids</tt><big>(</big><em>pid</em>, <em>child_pids=[]</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#PidManager.get_child_pids"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.PidManager.get_child_pids" title="Permalink to this definition"></a></dt>
<dd><p>get child pids of parent pid</p>
</dd></dl>
</dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.change_property">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">change_property</tt><big>(</big><em>file_path</em>, <em>property_key</em>, <em>property_value</em>, <em>clear=False</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#change_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.change_property" title="Permalink to this definition"></a></dt>
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">change_property</tt><big>(</big><em>file_path</em>, <em>property_dict</em>, <em>clear=False</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#change_property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.change_property" title="Permalink to this definition"></a></dt>
<dd><p>change property with a file</p>
<p>file_path: path to property file
property_key: property name
property value: property value
property_dict: dictionary of property names and values
clear: flag to remove property</p>
<p>If clear, and property exists, remove it from the property file.
If clear, and property doesn&#8217;t exists, nothing is done.
@ -793,6 +809,11 @@ python is py3, prefix the ansible command with a py2
interpreter.</p>
</dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.get_ansible_lock_path">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">get_ansible_lock_path</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#get_ansible_lock_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.get_ansible_lock_path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.get_group_vars_dir">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">get_group_vars_dir</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#get_group_vars_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.get_group_vars_dir" title="Permalink to this definition"></a></dt>
@ -803,6 +824,11 @@ interpreter.</p>
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">get_host_vars_dir</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#get_host_vars_dir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.get_host_vars_dir" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.get_kolla_actions_path">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">get_kolla_actions_path</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#get_kolla_actions_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.get_kolla_actions_path" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.get_kolla_etc">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">get_kolla_etc</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#get_kolla_etc"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.get_kolla_etc" title="Permalink to this definition"></a></dt>
@ -865,8 +891,8 @@ interpreter.</p>
<dl class="function">
<dt id="kollacli.common.utils.safe_decode">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">safe_decode</tt><big>(</big><em>obj_to_decode</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#safe_decode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.safe_decode" title="Permalink to this definition"></a></dt>
<dd><p>Convert bytes or string to unicode string</p>
<p>Convert either a string or list of strings to
<dd><p>Convert bytes or strings to unicode string</p>
<p>Converts strings, lists, or dictionaries to
unicode.</p>
</dd></dl>
@ -942,7 +968,7 @@ unicode.</p>
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli package &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli package &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -118,11 +118,6 @@
<dt id="kollacli.shell.KollaCli">
<em class="property">class </em><tt class="descclassname">kollacli.shell.</tt><tt class="descname">KollaCli</tt><a class="reference internal" href="_modules/kollacli/shell.html#KollaCli"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.shell.KollaCli" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">cliff.app.App</span></tt></p>
<dl class="method">
<dt id="kollacli.shell.KollaCli.add_rotational_log">
<tt class="descname">add_rotational_log</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/shell.html#KollaCli.add_rotational_log"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.shell.KollaCli.add_rotational_log" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="function">
@ -185,7 +180,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>kollacli &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
</head>
<body>
<div class="related">
@ -35,7 +35,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -141,7 +141,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

Binary file not shown.

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Python Module Index &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>Python Module Index &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -23,7 +23,7 @@
<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="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
@ -38,7 +38,7 @@
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -273,7 +273,7 @@
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

View File

@ -6,7 +6,7 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search &mdash; kollacli 1.0.0.dev386 documentation</title>
<title>Search &mdash; kollacli 1.0.0.dev396 documentation</title>
<link rel="stylesheet" href="_static/default.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@ -14,7 +14,7 @@
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '1.0.0.dev386',
VERSION: '1.0.0.dev396',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
@ -24,7 +24,7 @@
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/searchtools.js"></script>
<link rel="top" title="kollacli 1.0.0.dev386 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev396 documentation" href="index.html" />
<script type="text/javascript">
jQuery(function() { Search.loadIndex("searchindex.js"); });
</script>
@ -43,7 +43,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
@ -94,7 +94,7 @@
<li class="right" >
<a href="py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev386 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev396 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

File diff suppressed because one or more lines are too long