Updated api docs

Jira-Issue: OSTACKDEV-19
This commit is contained in:
Borne Mace 2016-03-30 16:13:19 -07:00
parent aef4fe7acd
commit 6f695e5fef
48 changed files with 2509 additions and 1395 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.dev368 documentation</title>
<title>Overview: module code &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -53,7 +53,9 @@
<li><a href="kollacli/api/host.html">kollacli.api.host</a></li>
<li><a href="kollacli/api/job.html">kollacli.api.job</a></li>
<li><a href="kollacli/api/password.html">kollacli.api.password</a></li>
<li><a href="kollacli/api/properties.html">kollacli.api.properties</a></li>
<li><a href="kollacli/api/service.html">kollacli.api.service</a></li>
<li><a href="kollacli/api/support.html">kollacli.api.support</a></li>
<li><a href="kollacli/commands/deploy.html">kollacli.commands.deploy</a></li>
<li><a href="kollacli/commands/exceptions.html">kollacli.commands.exceptions</a></li>
<li><a href="kollacli/commands/group.html">kollacli.commands.group</a></li>
@ -72,6 +74,7 @@
<li><a href="kollacli/common/sshutils.html">kollacli.common.sshutils</a></li>
<li><a href="kollacli/common/support.html">kollacli.common.support</a></li>
<li><a href="kollacli/common/utils.html">kollacli.common.utils</a></li>
<li><a href="kollacli/exceptions.html">kollacli.exceptions</a></li>
<li><a href="kollacli/shell.html">kollacli.shell</a></li>
</ul>
@ -106,7 +109,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.dev368 documentation</a> &raquo;</li>
<li><a href="../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.async &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,38 +47,64 @@
<div class="body">
<h1>Source code for kollacli.api.async</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># 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">from</span> <span class="nn">kollacli.api.exceptions</span> <span class="kn">import</span> <span class="n">InvalidArgument</span>
<span class="kn">from</span> <span class="nn">kollacli.api.job</span> <span class="kn">import</span> <span class="n">Job</span>
<span class="kn">from</span> <span class="nn">kollacli.common.ansible</span> <span class="kn">import</span> <span class="n">actions</span>
<span class="kn">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">Inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">safe_decode</span>
<div class="viewcode-block" id="AsyncApi"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.async.AsyncApi">[docs]</a><span class="k">class</span> <span class="nc">AsyncApi</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="c"># TODO(bmace) -- update this to only take host names</span>
<span class="c"># and we will probably only support compute host individual deploys</span>
<span class="c1"># TODO(bmace) -- update this to only take host names</span>
<span class="c1"># and we will probably only support compute host individual deploys</span>
<div class="viewcode-block" id="AsyncApi.async_deploy"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.async.AsyncApi.async_deploy">[docs]</a> <span class="k">def</span> <span class="nf">async_deploy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hostnames</span><span class="o">=</span><span class="p">[],</span> <span class="n">groupnames</span><span class="o">=</span><span class="p">[],</span> <span class="n">servicenames</span><span class="o">=</span><span class="p">[],</span>
<span class="n">serial_flag</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">verbose_level</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Deploy.</span>
<span class="sd"> Deploy containers to hosts.</span>
<span class="sd"> :param hostnames: hosts to deploy to. If empty, then deploy to all.</span>
<span class="sd"> :type hostnames: list of strings</span>
<span class="sd"> :param groupnames: names of groups</span>
<span class="sd"> :type groupnames: list of strings</span>
<span class="sd"> :param servicenames: names of services</span>
<span class="sd"> :type servicenames: list of strings</span>
<span class="sd"> :param serial_flag: if true, deploy will be done one host at a time</span>
<span class="sd"> :type serial_flag: boolean</span>
<span class="sd"> :param verbose_level: the higher the number, the more verbose</span>
<span class="sd"> :type verbose_level: integer</span>
<span class="sd"> :return: Job object</span>
<span class="sd"> :rtype: Job</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">,</span>
<span class="n">empty_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">none_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">groupnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">,</span>
<span class="n">empty_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">none_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">servicenames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">,</span>
<span class="n">empty_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">none_ok</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">serial_flag</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Serial flag&#39;</span><span class="p">),</span> <span class="nb">bool</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">verbose_level</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Verbose level&#39;</span><span class="p">),</span> <span class="nb">int</span><span class="p">)</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">groupnames</span><span class="p">)</span>
<span class="n">servicenames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">servicenames</span><span class="p">)</span>
<span class="n">ansible_job</span> <span class="o">=</span> <span class="n">actions</span><span class="o">.</span><span class="n">deploy</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">groupnames</span><span class="p">,</span> <span class="n">servicenames</span><span class="p">,</span>
<span class="n">serial_flag</span><span class="p">,</span> <span class="n">verbose_level</span><span class="p">)</span>
<span class="k">return</span> <span class="n">Job</span><span class="p">(</span><span class="n">ansible_job</span><span class="p">)</span>
@ -86,9 +112,15 @@
<div class="viewcode-block" id="AsyncApi.async_upgrade"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.async.AsyncApi.async_upgrade">[docs]</a> <span class="k">def</span> <span class="nf">async_upgrade</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">verbose_level</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Upgrade.</span>
<span class="sd"> :param verbose_level: the higher the number, the more verbose</span>
<span class="sd"> :type verbose_level: integer</span>
<span class="sd"> :return: Job object</span>
<span class="sd"> :rtype: Job</span>
<span class="sd"> Upgrade containers to new version specified by the property</span>
<span class="sd"> &quot;openstack_release.&quot;</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">verbose_level</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Verbose level&#39;</span><span class="p">),</span> <span class="nb">int</span><span class="p">)</span>
<span class="n">ansible_job</span> <span class="o">=</span> <span class="n">actions</span><span class="o">.</span><span class="n">upgrade</span><span class="p">(</span><span class="n">verbose_level</span><span class="p">)</span>
<span class="k">return</span> <span class="n">Job</span><span class="p">(</span><span class="n">ansible_job</span><span class="p">)</span>
</div>
@ -98,11 +130,27 @@
<span class="sd"> Stops and removes all kolla related docker containers on the</span>
<span class="sd"> specified hosts.</span>
<span class="sd"> :param hostnames: host names</span>
<span class="sd"> :type hostnames: list</span>
<span class="sd"> :param destroy_type: either &#39;kill&#39; or &#39;stop&#39;</span>
<span class="sd"> :type destroy_type: string</span>
<span class="sd"> :param verbose_level: the higher the number, the more verbose</span>
<span class="sd"> :type verbose_level: integer</span>
<span class="sd"> :param include_data: if true, destroy data containers too.</span>
<span class="sd"> :type include_data: boolean</span>
<span class="sd"> :return: Job object</span>
<span class="sd"> :rtype: Job</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">destroy_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s">&#39;stop&#39;</span><span class="p">,</span> <span class="s">&#39;kill&#39;</span><span class="p">]:</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">destroy_type</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Destroy type&#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">verbose_level</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Verbose level&#39;</span><span class="p">),</span> <span class="nb">int</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">include_data</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Include data&#39;</span><span class="p">),</span> <span class="nb">bool</span><span class="p">)</span>
<span class="k">if</span> <span class="n">destroy_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;stop&#39;</span><span class="p">,</span> <span class="s1">&#39;kill&#39;</span><span class="p">]:</span>
<span class="k">raise</span> <span class="n">InvalidArgument</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 destroy type ({type}). Must be either &#39;</span>
<span class="s">&#39;&quot;stop&quot; or &quot;kill&quot;.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="n">destroy_type</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Invalid destroy type ({type}). Must be either &#39;</span>
<span class="s1">&#39;&quot;stop&quot; or &quot;kill&quot;.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="n">destroy_type</span><span class="p">))</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</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>
@ -118,7 +166,15 @@
<span class="sd"> Check if host is ready for a new deployment. This will fail if</span>
<span class="sd"> any of the hosts are not configured correctly or if they have</span>
<span class="sd"> already been deployed to.</span>
<span class="sd"> :param hostnames: host names</span>
<span class="sd"> :type hostnames: list</span>
<span class="sd"> :param verbose_level: the higher the number, the more verbose</span>
<span class="sd"> :type verbose_level: integer</span>
<span class="sd"> :return: Job object</span>
<span class="sd"> :rtype: Job</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">verbose_level</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Verbose level&#39;</span><span class="p">),</span> <span class="nb">int</span><span class="p">)</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_hostnames</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
@ -158,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.client &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.api.client</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">from</span> <span class="nn">kollacli.api.async</span> <span class="kn">import</span> <span class="n">AsyncApi</span>
@ -67,7 +67,9 @@
<span class="kn">from</span> <span class="nn">kollacli.api.group</span> <span class="kn">import</span> <span class="n">GroupApi</span>
<span class="kn">from</span> <span class="nn">kollacli.api.host</span> <span class="kn">import</span> <span class="n">HostApi</span>
<span class="kn">from</span> <span class="nn">kollacli.api.password</span> <span class="kn">import</span> <span class="n">PasswordApi</span>
<span class="kn">from</span> <span class="nn">kollacli.api.properties</span> <span class="kn">import</span> <span class="n">PropertyApi</span>
<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">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>
@ -78,11 +80,13 @@
<span class="n">GroupApi</span><span class="p">,</span>
<span class="n">HostApi</span><span class="p">,</span>
<span class="n">PasswordApi</span><span class="p">,</span>
<span class="n">PropertyApi</span><span class="p">,</span>
<span class="n">ServiceApi</span><span class="p">,</span>
<span class="n">SupportApi</span><span class="p">,</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="s1">&#39;base call&#39;</span><span class="p">)</span></div></div>
</pre></div>
</div>
@ -116,7 +120,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.deploy &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,22 +47,25 @@
<div class="body">
<h1>Source code for kollacli.api.deploy</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</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">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">Inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</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>
@ -79,6 +82,7 @@
<span class="sd"> :param remote_mode: if remote mode is True deployment is done via ssh</span>
<span class="sd"> :type remote_mode: bool</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">remote_mode</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Remote mode&#39;</span><span class="p">),</span> <span class="nb">bool</span><span class="p">)</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</span><span class="o">.</span><span class="n">set_deploy_mode</span><span class="p">(</span><span class="n">remote_mode</span><span class="p">)</span>
<span class="n">Inventory</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">inventory</span><span class="p">)</span></div></div>
@ -115,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.exceptions &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.api.exceptions</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="sd">&quot;&quot;&quot;Exception definitions.&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
@ -68,7 +68,7 @@
<span class="sd">&quot;&quot;&quot;KollaClient Base Class Exception&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">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">message</span><span class="p">:</span>
<span class="n">message</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;An unknown exception occurred.&#39;</span><span class="p">)</span>
<span class="n">message</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;An unknown exception occurred.&#39;</span><span class="p">)</span>
<span class="nb">super</span><span class="p">(</span><span class="n">ClientException</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
</div>
@ -76,16 +76,16 @@
<span class="sd">&quot;&quot;&quot;Not in inventory exception&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">obj_type</span><span class="p">,</span> <span class="n">obj_names</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">obj_names</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
<span class="c"># list of names</span>
<span class="n">invalid_objs</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="c1"># list of names</span>
<span class="n">invalid_objs</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">for</span> <span class="n">obj_name</span> <span class="ow">in</span> <span class="n">obj_names</span><span class="p">:</span>
<span class="n">invalid_objs</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">invalid_objs</span><span class="p">,</span> <span class="n">comma</span><span class="p">,</span> <span class="n">obj_name</span><span class="p">])</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s">&#39;,&#39;</span>
<span class="n">invalid_objs</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">invalid_objs</span><span class="p">,</span> <span class="n">comma</span><span class="p">,</span> <span class="n">obj_name</span><span class="p">])</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s1">&#39;,&#39;</span>
<span class="k">else</span><span class="p">:</span>
<span class="c"># single object name</span>
<span class="c1"># single object name</span>
<span class="n">invalid_objs</span> <span class="o">=</span> <span class="n">obj_names</span>
<span class="n">message</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;{type} ({objs}) does not exist.&#39;</span><span class="p">)</span>
<span class="n">message</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="s1">&#39;{type} ({objs}) does not exist.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="nb">type</span><span class="o">=</span><span class="n">obj_type</span><span class="p">,</span> <span class="n">objs</span><span class="o">=</span><span class="n">invalid_objs</span><span class="p">))</span>
<span class="nb">super</span><span class="p">(</span><span class="n">NotInInventory</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
@ -97,12 +97,12 @@
<div class="viewcode-block" id="HostsSshCheckError"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.exceptions.HostsSshCheckError">[docs]</a><span class="k">class</span> <span class="nc">HostsSshCheckError</span><span class="p">(</span><span class="n">ClientException</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Host failed its ssh check&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">hostnames</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
<span class="n">failed_hosts</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">failed_hosts</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">for</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="n">failed_hosts</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">failed_hosts</span><span class="p">,</span> <span class="n">comma</span><span class="p">,</span> <span class="n">hostname</span><span class="p">])</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s">&#39;,&#39;</span>
<span class="n">message</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;Host(s) ssh check failed: {hosts}&#39;</span><span class="p">)</span>
<span class="n">failed_hosts</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">failed_hosts</span><span class="p">,</span> <span class="n">comma</span><span class="p">,</span> <span class="n">hostname</span><span class="p">])</span>
<span class="n">comma</span> <span class="o">=</span> <span class="s1">&#39;,&#39;</span>
<span class="n">message</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="s1">&#39;Host(s) ssh check failed: {hosts}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">hosts</span><span class="o">=</span><span class="n">failed_hosts</span><span class="p">))</span>
<span class="nb">super</span><span class="p">(</span><span class="n">HostsSshCheckError</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
@ -124,7 +124,7 @@
<div class="viewcode-block" id="MissingArgument"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.exceptions.MissingArgument">[docs]</a><span class="k">class</span> <span class="nc">MissingArgument</span><span class="p">(</span><span class="n">ClientException</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Missing argument&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">argname</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
<span class="n">message</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;Argument is missing: {name}&#39;</span><span class="p">)</span>
<span class="n">message</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="s1">&#39;Argument is missing: {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="n">argname</span><span class="p">))</span>
<span class="nb">super</span><span class="p">(</span><span class="n">MissingArgument</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span></div>
</pre></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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.group &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,24 +47,24 @@
<div class="body">
<h1>Source code for kollacli.api.group</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">copy</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">from</span> <span class="nn">kollacli.api.exceptions</span> <span class="kn">import</span> <span class="n">MissingArgument</span>
<span class="kn">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">Inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">safe_decode</span>
@ -99,6 +99,7 @@
<span class="sd"> :type servicename: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">servicename</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">servicename</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_servicenames</span><span class="p">([</span><span class="n">servicename</span><span class="p">])</span>
@ -106,7 +107,7 @@
<span class="n">group_services</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group_services</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_servicenames</span> <span class="o">=</span> <span class="n">group_services</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">]</span>
<span class="k">if</span> <span class="n">servicename</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_servicenames</span><span class="p">:</span>
<span class="c"># service not associated with group, add it</span>
<span class="c1"># service not associated with group, add it</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">add_group_to_service</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">servicename</span><span class="p">)</span>
<span class="n">Inventory</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">inventory</span><span class="p">)</span>
</div>
@ -117,6 +118,7 @@
<span class="sd"> :type servicename: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">servicename</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">servicename</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_servicenames</span><span class="p">([</span><span class="n">servicename</span><span class="p">])</span>
@ -124,7 +126,7 @@
<span class="n">group_services</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group_services</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_servicenames</span> <span class="o">=</span> <span class="n">group_services</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">]</span>
<span class="k">if</span> <span class="n">servicename</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_servicenames</span><span class="p">:</span>
<span class="c"># service is associated with group, remove it</span>
<span class="c1"># service is associated with group, remove it</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">remove_group_from_service</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">servicename</span><span class="p">)</span>
<span class="n">Inventory</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">inventory</span><span class="p">)</span>
</div>
@ -143,6 +145,7 @@
<span class="sd"> :type hostname: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">hostname</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_hostnames</span><span class="p">([</span><span class="n">hostname</span><span class="p">])</span>
@ -150,7 +153,7 @@
<span class="n">group</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_hostnames</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">get_hostnames</span><span class="p">()</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hostnames</span><span class="p">:</span>
<span class="c"># host not associated with group, add it</span>
<span class="c1"># host not associated with group, add it</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">add_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">Inventory</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">inventory</span><span class="p">)</span>
</div>
@ -161,6 +164,7 @@
<span class="sd"> :type hostname: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">hostname</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_hostnames</span><span class="p">([</span><span class="n">hostname</span><span class="p">])</span>
@ -168,7 +172,7 @@
<span class="n">group</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_hostnames</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">get_hostnames</span><span class="p">()</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hostnames</span><span class="p">:</span>
<span class="c"># host is associated with group, remove it</span>
<span class="c1"># host is associated with group, remove it</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">remove_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="n">Inventory</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">inventory</span><span class="p">)</span>
</div></div>
@ -179,8 +183,7 @@
<span class="sd"> :type groupname: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">groupname</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Group name&#39;</span><span class="p">))</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">groupname</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">groupname</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</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>
@ -194,9 +197,7 @@
<span class="sd"> :type groupname: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">groupname</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Group name&#39;</span><span class="p">))</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">groupname</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</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">groupname</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">remove_group</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
@ -218,8 +219,7 @@
<span class="sd"> :return: groups</span>
<span class="sd"> :rtype: list of Group objects</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">groupnames</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Group names&#39;</span><span class="p">))</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">groupnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">groupnames</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_groups</span><span class="p">(</span><span class="n">groupnames</span><span class="p">)</span>
</div>
@ -271,7 +271,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.host &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,23 +47,24 @@
<div class="body">
<h1>Source code for kollacli.api.host</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">copy</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">from</span> <span class="nn">kollacli.api.exceptions</span> <span class="kn">import</span> <span class="n">MissingArgument</span>
<span class="kn">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">Inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">safe_decode</span>
@ -73,7 +74,7 @@
<span class="sd">&quot;&quot;&quot;Host&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">hostname</span><span class="p">,</span> <span class="n">groupnames</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">hostname</span>
<span class="bp">self</span><span class="o">.</span><span class="n">groupnames</span> <span class="o">=</span> <span class="n">groupnames</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span> <span class="o">=</span> <span class="n">groupnames</span>
<div class="viewcode-block" id="HostApi.Host.get_name"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.host.HostApi.Host.get_name">[docs]</a> <span class="k">def</span> <span class="nf">get_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get name</span>
@ -83,21 +84,20 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
</div>
<div class="viewcode-block" id="HostApi.Host.get_groupnames"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.host.HostApi.Host.get_groupnames">[docs]</a> <span class="k">def</span> <span class="nf">get_groupnames</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<div class="viewcode-block" id="HostApi.Host.get_groups"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.host.HostApi.Host.get_groups">[docs]</a> <span class="k">def</span> <span class="nf">get_groups</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get names of the groups associated with this host</span>
<span class="sd"> :return: group names</span>
<span class="sd"> :rtype: list of strings</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">groupnames</span><span class="p">()</span>
<span class="k">return</span> <span class="n">copy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span><span class="p">)</span>
</div></div>
<div class="viewcode-block" id="HostApi.host_add"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.host.HostApi.host_add">[docs]</a> <span class="k">def</span> <span class="nf">host_add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hostnames</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Add hosts to the inventory</span>
<span class="sd"> :param hostnames: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Host names&#39;</span><span class="p">))</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</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>
@ -114,12 +114,10 @@
<span class="sd"> :param hostnames: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</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="k">if</span> <span class="ow">not</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Host names&#39;</span><span class="p">))</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</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">any_changed</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">for</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="n">changed</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">remove_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
@ -148,8 +146,7 @@
<span class="sd"> :return: hosts</span>
<span class="sd"> :rtype: Host</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">hostnames</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Host names&#39;</span><span class="p">))</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_hostnames</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
@ -174,6 +171,7 @@
<span class="sd"> :return: check status</span>
<span class="sd"> :rtype: dictionary</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</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">hostnames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">validate_hostnames</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
@ -193,6 +191,7 @@
<span class="sd"> :param hosts_info: dictionary</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">hosts_info</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Hosts info&#39;</span><span class="p">),</span> <span class="nb">dict</span><span class="p">)</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</span><span class="o">.</span><span class="n">validate_hostnames</span><span class="p">(</span><span class="n">hosts_info</span><span class="o">.</span><span class="n">keys</span><span class="p">())</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">setup_hosts</span><span class="p">(</span><span class="n">hosts_info</span><span class="p">)</span></div></div>
@ -229,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api.job &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.api.job</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<div class="viewcode-block" id="Job"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.job.Job">[docs]</a><span class="k">class</span> <span class="nc">Job</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
@ -131,7 +131,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -0,0 +1,142 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.password &mdash; kollacli 1.0.0.dev379 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev379',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<link rel="top" title="kollacli 1.0.0.dev379 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<h1>Source code for kollacli.api.password</h1><div class="highlight"><pre>
<span></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># 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">from</span> <span class="nn">kollacli.common.passwords</span> <span class="kn">import</span> <span class="n">clear_password</span>
<span class="kn">from</span> <span class="nn">kollacli.common.passwords</span> <span class="kn">import</span> <span class="n">get_password_names</span>
<span class="kn">from</span> <span class="nn">kollacli.common.passwords</span> <span class="kn">import</span> <span class="n">set_password</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</span>
<div class="viewcode-block" id="PasswordApi"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.password.PasswordApi">[docs]</a><span class="k">class</span> <span class="nc">PasswordApi</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<div class="viewcode-block" id="PasswordApi.password_set"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.password.PasswordApi.password_set">[docs]</a> <span class="k">def</span> <span class="nf">password_set</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="sd">&quot;&quot;&quot;Set password</span>
<span class="sd"> :param name: name of the password</span>
<span class="sd"> :type name: string</span>
<span class="sd"> :param value: value of the password</span>
<span class="sd"> :type value: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">set_password</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="PasswordApi.password_clear"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.password.PasswordApi.password_clear">[docs]</a> <span class="k">def</span> <span class="nf">password_clear</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="sd">&quot;&quot;&quot;Clear password</span>
<span class="sd"> :param name: name of the password</span>
<span class="sd"> :type name: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password name&#39;</span><span class="p">),</span> <span class="nb">str</span><span class="p">)</span>
<span class="n">clear_password</span><span class="p">(</span><span class="n">name</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="PasswordApi.password_get_names"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.password.PasswordApi.password_get_names">[docs]</a> <span class="k">def</span> <span class="nf">password_get_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get password names</span>
<span class="sd"> :return: password names</span>
<span class="sd"> :rtype: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">get_password_names</span><span class="p">()</span></div></div>
</pre></div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../../../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2016, Oracle.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
</div>
</body>
</html>

View File

@ -0,0 +1,257 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.properties &mdash; kollacli 1.0.0.dev379 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev379',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<link rel="top" title="kollacli 1.0.0.dev379 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<h1>Source code for kollacli.api.properties</h1><div class="highlight"><pre>
<span></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</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">from</span> <span class="nn">kollacli.api.exceptions</span> <span class="kn">import</span> <span class="n">InvalidArgument</span>
<span class="kn">from</span> <span class="nn">kollacli.common.properties</span> <span class="kn">import</span> <span class="n">AnsibleProperties</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</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>
<span class="n">GLOBAL_TYPE</span> <span class="o">=</span> <span class="s1">&#39;global&#39;</span>
<span class="n">GROUP_TYPE</span> <span class="o">=</span> <span class="s1">&#39;group&#39;</span>
<span class="n">HOST_TYPE</span> <span class="o">=</span> <span class="s1">&#39;host&#39;</span>
<span class="n">PROP_TYPES</span> <span class="o">=</span> <span class="p">[</span><span class="n">GLOBAL_TYPE</span><span class="p">,</span> <span class="n">GROUP_TYPE</span><span class="p">,</span> <span class="n">HOST_TYPE</span><span class="p">]</span>
<div class="viewcode-block" id="PropertyApi"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi">[docs]</a><span class="k">class</span> <span class="nc">PropertyApi</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<div class="viewcode-block" id="PropertyApi.Property"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.properties.PropertyApi.Property">[docs]</a> <span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Property</span>
<span class="sd"> Members:</span>
<span class="sd"> - name (str): key</span>
<span class="sd"> - value (str): value</span>
<span class="sd"> - file_name (str): name of file property is from</span>
<span class="sd"> - overrides (bool): does the property override some other value</span>
<span class="sd"> - orig_value (str): the value which is overridden or None</span>
<span class="sd"> - target (str): group or host name for group or host properties</span>
<span class="sd"> - prop_type (str): one of &#39;global&#39;, &#39;group&#39; or &#39;host&#39;</span>
<span class="sd"> - ovr_global (bool): true if property is overridden at global level</span>
<span class="sd"> - ovr_group (bool): true if property is overridden at group level</span>
<span class="sd"> - ovr_host (bool): true if property is overridden at host level</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">ansible_property</span><span class="p">,</span> <span class="n">override_flags</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">name</span>
<span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">value</span>
<span class="bp">self</span><span class="o">.</span><span class="n">file_name</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">file_name</span>
<span class="bp">self</span><span class="o">.</span><span class="n">overrides</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">overrides</span>
<span class="bp">self</span><span class="o">.</span><span class="n">orig_value</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">orig_value</span>
<span class="bp">self</span><span class="o">.</span><span class="n">target</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">target</span>
<span class="bp">self</span><span class="o">.</span><span class="n">prop_type</span> <span class="o">=</span> <span class="n">ansible_property</span><span class="o">.</span><span class="n">prop_type</span>
<span class="k">if</span> <span class="n">override_flags</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ovr_global</span> <span class="o">=</span> <span class="n">override_flags</span><span class="o">.</span><span class="n">ovr_global</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ovr_group</span> <span class="o">=</span> <span class="n">override_flags</span><span class="o">.</span><span class="n">ovr_group</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ovr_host</span> <span class="o">=</span> <span class="n">override_flags</span><span class="o">.</span><span class="n">ovr_host</span>
<span class="k">else</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">ovr_global</span> <span class="o">=</span> <span class="bp">False</span>
<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>
<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_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>
<span class="sd"> or hosts to set the property for</span>
<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="s1">&#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="s1">&#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="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="s1">&#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>
<span class="n">change_set</span> <span class="o">=</span> <span class="n">safe_decode</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">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="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="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>
</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>
<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_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>
<span class="sd"> groups or hosts to clear the property for</span>
<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="s1">&#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="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="s1">&#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>
<span class="n">change_set</span> <span class="o">=</span> <span class="n">safe_decode</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">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="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="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>
</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>
<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 get_set: optional list of hosts or groups to be used when</span>
<span class="sd"> getting group or host related property lists</span>
<span class="sd"> :type get_set: list of strings</span>
<span class="sd"> :return: properties</span>
<span class="sd"> :rtype: list of Property objects</span>
<span class="sd"> &quot;&quot;&quot;</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="n">get_set</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">get_set</span><span class="p">)</span>
<span class="n">ansible_properties</span> <span class="o">=</span> <span class="n">AnsibleProperties</span><span class="p">()</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">result_list</span> <span class="o">=</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">property_list</span> <span class="o">=</span> <span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_all_unique</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">property_list</span> <span class="o">=</span> <span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_group_list</span><span class="p">(</span><span class="n">get_set</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_host_list</span><span class="p">(</span><span class="n">get_set</span><span class="p">)</span>
<span class="n">override_flags</span> <span class="o">=</span> <span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_all_override_flags</span><span class="p">()</span>
<span class="k">for</span> <span class="n">prop</span> <span class="ow">in</span> <span class="n">property_list</span><span class="p">:</span>
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Property</span><span class="p">(</span><span class="n">prop</span><span class="p">,</span> <span class="n">override_flags</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">prop</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="bp">None</span><span class="p">))</span>
<span class="n">result_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">result</span><span class="p">)</span>
<span class="k">return</span> <span class="n">result_list</span>
</div>
<span class="k">def</span> <span class="nf">_check_type</span><span class="p">(</span><span class="bp">self</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="bp">None</span> <span class="ow">or</span> <span class="n">property_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">PROP_TYPES</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidArgument</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Type ({value} is not one of &#39;</span>
<span class="s1">&#39;global, group or host&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">value</span><span class="o">=</span><span class="n">property_type</span><span class="p">))</span></div>
</pre></div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../../../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2016, Oracle.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
</div>
</body>
</html>

View File

@ -0,0 +1,216 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.service &mdash; kollacli 1.0.0.dev379 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev379',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<link rel="top" title="kollacli 1.0.0.dev379 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<h1>Source code for kollacli.api.service</h1><div class="highlight"><pre>
<span></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">from</span> <span class="nn">copy</span> <span class="kn">import</span> <span class="n">copy</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">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">Inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">check_arg</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">safe_decode</span>
<div class="viewcode-block" id="ServiceApi"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi">[docs]</a><span class="k">class</span> <span class="nc">ServiceApi</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<div class="viewcode-block" id="ServiceApi.Service"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.Service">[docs]</a> <span class="k">class</span> <span class="nc">Service</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Service</span>
<span class="sd"> A service is one of the services available in openstack-kolla.</span>
<span class="sd"> For example, this would be how the murano services would be</span>
<span class="sd"> represented:</span>
<span class="sd"> - murano</span>
<span class="sd"> - parentname: None</span>
<span class="sd"> - childnames: [murano-api, murano-engine]</span>
<span class="sd"> - murano-api</span>
<span class="sd"> - parentname: murano</span>
<span class="sd"> - childnames: []</span>
<span class="sd"> - murano-engine</span>
<span class="sd"> - parentname: murano</span>
<span class="sd"> - childnames: []</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">servicename</span><span class="p">,</span> <span class="n">parentname</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span>
<span class="n">childnames</span><span class="o">=</span><span class="p">[],</span> <span class="n">groupnames</span><span class="o">=</span><span class="p">[]):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">servicename</span>
<span class="bp">self</span><span class="o">.</span><span class="n">parentname</span> <span class="o">=</span> <span class="n">parentname</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_childnames</span> <span class="o">=</span> <span class="n">childnames</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span> <span class="o">=</span> <span class="n">groupnames</span>
<div class="viewcode-block" id="ServiceApi.Service.get_name"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_name">[docs]</a> <span class="k">def</span> <span class="nf">get_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get name</span>
<span class="sd"> :return: service name</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">name</span>
</div>
<div class="viewcode-block" id="ServiceApi.Service.get_parent"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_parent">[docs]</a> <span class="k">def</span> <span class="nf">get_parent</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get name of parent service</span>
<span class="sd"> :return: parent service name</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">parentname</span>
</div>
<div class="viewcode-block" id="ServiceApi.Service.get_children"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_children">[docs]</a> <span class="k">def</span> <span class="nf">get_children</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get names of the child services associated with this service</span>
<span class="sd"> :return: child names</span>
<span class="sd"> :rtype: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">copy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_childnames</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="ServiceApi.Service.get_groups"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_groups">[docs]</a> <span class="k">def</span> <span class="nf">get_groups</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get names of the groups associated with this service</span>
<span class="sd"> :return: group names</span>
<span class="sd"> :rtype: list of strings</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">return</span> <span class="n">copy</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span><span class="p">)</span>
</div></div>
<div class="viewcode-block" id="ServiceApi.service_get_all"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.service_get_all">[docs]</a> <span class="k">def</span> <span class="nf">service_get_all</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get all services in the inventory</span>
<span class="sd"> :return: services</span>
<span class="sd"> :rtype: List of Service objects</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">_get_services</span><span class="p">(</span><span class="bp">None</span><span class="p">,</span> <span class="n">get_all</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="ServiceApi.service_get"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.service.ServiceApi.service_get">[docs]</a> <span class="k">def</span> <span class="nf">service_get</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">servicenames</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Get selected services in the inventory</span>
<span class="sd"> :param servicenames: names of services to be read</span>
<span class="sd"> :type servicenames: list of strings</span>
<span class="sd"> :return: services</span>
<span class="sd"> :rtype: list of Service objects</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">check_arg</span><span class="p">(</span><span class="n">servicenames</span><span class="p">,</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service names&#39;</span><span class="p">),</span> <span class="nb">list</span><span class="p">)</span>
<span class="n">servicenames</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">servicenames</span><span class="p">)</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_services</span><span class="p">(</span><span class="n">servicenames</span><span class="p">)</span>
</div>
<span class="k">def</span> <span class="nf">_get_services</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">servicenames</span><span class="p">,</span> <span class="n">get_all</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
<span class="n">services</span> <span class="o">=</span> <span class="p">[]</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="k">if</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">validate_servicenames</span><span class="p">(</span><span class="n">servicenames</span><span class="p">)</span>
<span class="n">inv_services</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_services</span><span class="p">()</span>
<span class="n">inv_subservices</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_sub_services</span><span class="p">()</span>
<span class="k">for</span> <span class="n">inv_service</span> <span class="ow">in</span> <span class="n">inv_services</span><span class="p">:</span>
<span class="k">if</span> <span class="n">get_all</span> <span class="ow">or</span> <span class="n">inv_service</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="n">service</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Service</span><span class="p">(</span><span class="n">inv_service</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
<span class="bp">None</span><span class="p">,</span>
<span class="n">inv_service</span><span class="o">.</span><span class="n">get_sub_servicenames</span><span class="p">(),</span>
<span class="n">inv_service</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">())</span>
<span class="n">services</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">service</span><span class="p">)</span>
<span class="k">for</span> <span class="n">inv_subservice</span> <span class="ow">in</span> <span class="n">inv_subservices</span><span class="p">:</span>
<span class="k">if</span> <span class="n">get_all</span> <span class="ow">or</span> <span class="n">inv_subservice</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="n">service</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Service</span><span class="p">(</span><span class="n">inv_subservice</span><span class="o">.</span><span class="n">name</span><span class="p">,</span>
<span class="n">inv_subservice</span><span class="o">.</span><span class="n">get_parent_servicename</span><span class="p">(),</span>
<span class="p">[],</span>
<span class="n">inv_subservice</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">())</span>
<span class="n">services</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">service</span><span class="p">)</span>
<span class="k">return</span> <span class="n">services</span></div>
</pre></div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../../../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2016, Oracle.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
</div>
</body>
</html>

View File

@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>kollacli.api.support &mdash; kollacli 1.0.0.dev379 documentation</title>
<link rel="stylesheet" href="../../../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../../../',
VERSION: '1.0.0.dev379',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../../../_static/jquery.js"></script>
<script type="text/javascript" src="../../../_static/underscore.js"></script>
<script type="text/javascript" src="../../../_static/doctools.js"></script>
<link rel="top" title="kollacli 1.0.0.dev379 documentation" href="../../../index.html" />
<link rel="up" title="Module code" href="../../index.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<h1>Source code for kollacli.api.support</h1><div class="highlight"><pre>
<span></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">from</span> <span class="nn">kollacli.common.support</span> <span class="kn">import</span> <span class="n">dump</span>
<div class="viewcode-block" id="SupportApi"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.support.SupportApi">[docs]</a><span class="k">class</span> <span class="nc">SupportApi</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<div class="viewcode-block" id="SupportApi.support_dump"><a class="viewcode-back" href="../../../kollacli.api.html#kollacli.api.support.SupportApi.support_dump">[docs]</a> <span class="k">def</span> <span class="nf">support_dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Dumps configuration data for debugging.</span>
<span class="sd"> Dumps most files in /etc/kolla and /usr/share/kolla into a</span>
<span class="sd"> tar file so be given to support / development to help with</span>
<span class="sd"> debugging problems.</span>
<span class="sd"> :return: path to dump file</span>
<span class="sd"> :rtype: string</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">dumpfile_path</span> <span class="o">=</span> <span class="n">dump</span><span class="p">()</span>
<span class="k">return</span> <span class="n">dumpfile_path</span></div></div>
</pre></div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../../../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../../../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../../../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" >Module code</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2016, Oracle.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3.
</div>
</body>
</html>

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.dev368 documentation</title>
<title>kollacli.commands.deploy &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.deploy</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">traceback</span>
@ -67,7 +67,6 @@
<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.utils</span> <span class="kn">import</span> <span class="n">convert_to_unicode</span>
<span class="kn">from</span> <span class="nn">cliff.command</span> <span class="kn">import</span> <span class="n">Command</span>
@ -79,17 +78,17 @@
<span class="sd">&quot;&quot;&quot;Deploy.&quot;&quot;&quot;</span>
<div class="viewcode-block" id="Deploy.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.deploy.Deploy.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Deploy</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Deployment host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Deployment group list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--services&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;service_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Deployment service list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--serial&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Deploy serially&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Deployment host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Deployment group list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--services&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;service_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Deployment service list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--serial&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Deploy serially&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="Deploy.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.deploy.Deploy.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>
@ -101,13 +100,13 @@
<span class="k">try</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="n">host_list</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hosts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">hosts</span> <span class="o">=</span> <span class="n">convert_to_unicode</span><span class="p">(</span><span class="n">host_list</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
<span class="n">hosts</span> <span class="o">=</span> <span class="n">host_list</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</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>
<span class="n">group_list</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">groups</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">groups</span> <span class="o">=</span> <span class="n">convert_to_unicode</span><span class="p">(</span><span class="n">group_list</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
<span class="n">groups</span> <span class="o">=</span> <span class="n">group_list</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">services</span><span class="p">:</span>
<span class="n">service_list</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">services</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">services</span> <span class="o">=</span> <span class="n">convert_to_unicode</span><span class="p">(</span><span class="n">service_list</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
<span class="n">services</span> <span class="o">=</span> <span class="n">service_list</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">serial</span><span class="p">:</span>
<span class="n">serial_flag</span> <span class="o">=</span> <span class="bp">True</span>
@ -115,13 +114,13 @@
<span class="n">verbose_level</span><span class="p">)</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
<span class="k">if</span> <span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">2</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;</span><span class="se">\n\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s">{out}&#39;</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="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s1">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s1">{out}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">out</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_console_output</span><span class="p">()))</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">LOG</span><span class="o">.</span><span class="n">info</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;Success&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Success&#39;</span><span class="p">))</span>
<span class="k">else</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;Job failed:</span><span class="se">\n</span><span class="s">{msg}&#39;</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="s1">&#39;Job failed:</span><span class="se">\n</span><span class="s1">{msg}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">msg</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_error_message</span><span class="p">()))</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
@ -137,20 +136,20 @@
<span class="sd"> &quot;&quot;&quot;</span>
<div class="viewcode-block" id="Setdeploy.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.deploy.Setdeploy.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">Setdeploy</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;mode&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;mode&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;mode=&lt;local, remote&gt;&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;mode&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;mode&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;mode=&lt;local, remote&gt;&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="Setdeploy.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.deploy.Setdeploy.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">mode</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">mode</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">remote_flag</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">if</span> <span class="n">mode</span> <span class="o">==</span> <span class="s">&#39;remote&#39;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">mode</span> <span class="o">==</span> <span class="s1">&#39;remote&#39;</span><span class="p">:</span>
<span class="n">remote_flag</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">elif</span> <span class="n">mode</span> <span class="o">!=</span> <span class="s">&#39;local&#39;</span><span class="p">:</span>
<span class="k">elif</span> <span class="n">mode</span> <span class="o">!=</span> <span class="s1">&#39;local&#39;</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;Invalid deploy mode. Mode must be &#39;</span>
<span class="s">&#39;either &quot;local&quot; or &quot;remote&quot;.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Invalid deploy mode. Mode must be &#39;</span>
<span class="s1">&#39;either &quot;local&quot; or &quot;remote&quot;.&#39;</span><span class="p">))</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">deploy_set_mode</span><span class="p">(</span><span class="n">remote_flag</span><span class="p">)</span>
<span class="k">except</span> <span class="n">CommandError</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>
@ -189,7 +188,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.exceptions &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.exceptions</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="sd">&quot;&quot;&quot;Exception definitions.&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
@ -67,7 +67,7 @@
<div class="viewcode-block" id="CommandError"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.exceptions.CommandError">[docs]</a><span class="k">class</span> <span class="nc">CommandError</span><span class="p">(</span><span class="ne">Exception</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;CLI command error&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">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
<span class="n">prefix</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;ERROR: &#39;</span><span class="p">)</span>
<span class="n">prefix</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;ERROR: &#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">message</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="n">prefix</span><span class="p">):</span>
<span class="n">message</span> <span class="o">=</span> <span class="n">prefix</span> <span class="o">+</span> <span class="n">message</span>
<span class="nb">super</span><span class="p">(</span><span class="n">CommandError</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span></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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.group &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.group</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">traceback</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
@ -78,8 +78,8 @@
<span class="sd">&quot;&quot;&quot;Add group to openstack-kolla.&quot;&quot;&quot;</span>
<div class="viewcode-block" id="GroupAdd.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupAdd.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">GroupAdd</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="GroupAdd.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupAdd.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>
@ -98,8 +98,8 @@
<div class="viewcode-block" id="GroupRemove.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupRemove.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">GroupRemove</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="GroupRemove.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupRemove.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>
@ -117,10 +117,10 @@
<span class="sd">&quot;&quot;&quot;Add host to group.&quot;&quot;&quot;</span>
<div class="viewcode-block" id="GroupAddhost.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupAddhost.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">GroupAddhost</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="GroupAddhost.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupAddhost.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>
@ -142,10 +142,10 @@
<div class="viewcode-block" id="GroupRemovehost.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupRemovehost.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">GroupRemovehost</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="GroupRemovehost.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupRemovehost.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>
@ -167,14 +167,14 @@
<div class="viewcode-block" id="GroupListhosts.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupListhosts.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">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)]</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)]</span>
<span class="n">groups</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">group_get_all</span><span class="p">()</span>
<span class="k">if</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">group</span><span class="o">.</span><span class="n">get_name</span><span class="p">(),</span>
<span class="nb">sorted</span><span class="p">(</span><span class="n">group</span><span class="o">.</span><span class="n">get_hosts</span><span class="p">())))</span>
<span class="k">return</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;Group&#39;</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;Hosts&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">return</span> <span class="p">((</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Hosts&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</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">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@ -185,10 +185,10 @@
<span class="sd">&quot;&quot;&quot;Add service to group.&quot;&quot;&quot;</span>
<div class="viewcode-block" id="GroupAddservice.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupAddservice.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">GroupAddservice</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Service name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="GroupAddservice.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupAddservice.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>
@ -210,10 +210,10 @@
<div class="viewcode-block" id="GroupRemoveservice.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupRemoveservice.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">GroupRemoveservice</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Service name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="GroupRemoveservice.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupRemoveservice.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>
@ -235,14 +235,14 @@
<div class="viewcode-block" id="GroupListservices.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.group.GroupListservices.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">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)]</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)]</span>
<span class="n">groups</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">group_get_all</span><span class="p">()</span>
<span class="k">if</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">group</span><span class="o">.</span><span class="n">get_name</span><span class="p">(),</span>
<span class="nb">sorted</span><span class="p">(</span><span class="n">group</span><span class="o">.</span><span class="n">get_services</span><span class="p">())))</span>
<span class="k">return</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;Group&#39;</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;Services&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">return</span> <span class="p">((</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Services&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</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">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@ -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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.host &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.host</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">argparse</span>
<span class="kn">import</span> <span class="nn">getpass</span>
<span class="kn">import</span> <span class="nn">logging</span>
@ -85,8 +85,8 @@
<div class="viewcode-block" id="HostAdd.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostAdd.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">HostAdd</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name or ip address&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name or ip address&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="HostAdd.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostAdd.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>
@ -109,12 +109,12 @@
<div class="viewcode-block" id="HostDestroy.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostDestroy.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">HostDestroy</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname | all&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name or ip address or &quot;all&quot;&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--stop&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Stop rather than kill&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--includedata&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Destroy data containers&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname | all&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name or ip address or &quot;all&quot;&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--stop&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Stop rather than kill&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--includedata&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Destroy data containers&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="HostDestroy.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostDestroy.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>
@ -122,12 +122,12 @@
<span class="n">hostname</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hostname</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">hostname</span><span class="p">]</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="o">==</span> <span class="s">&#39;all&#39;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="o">==</span> <span class="s1">&#39;all&#39;</span><span class="p">:</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">_get_all_hostnames</span><span class="p">()</span>
<span class="n">destroy_type</span> <span class="o">=</span> <span class="s">&#39;kill&#39;</span>
<span class="n">destroy_type</span> <span class="o">=</span> <span class="s1">&#39;kill&#39;</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">stop</span><span class="p">:</span>
<span class="n">destroy_type</span> <span class="o">=</span> <span class="s">&#39;stop&#39;</span>
<span class="n">destroy_type</span> <span class="o">=</span> <span class="s1">&#39;stop&#39;</span>
<span class="n">include_data</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">includedata</span><span class="p">:</span>
<span class="n">include_data</span> <span class="o">=</span> <span class="bp">True</span>
@ -138,11 +138,11 @@
<span class="n">verbose_level</span><span class="p">,</span> <span class="n">include_data</span><span class="p">)</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
<span class="k">if</span> <span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">2</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;</span><span class="se">\n\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s">{out}&#39;</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="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s1">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s1">{out}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">out</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_console_output</span><span class="p">()))</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="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;Job failed:</span><span class="se">\n</span><span class="s">{msg}&#39;</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="s1">&#39;Job failed:</span><span class="se">\n</span><span class="s1">{msg}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">msg</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_error_message</span><span class="p">()))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@ -156,15 +156,15 @@
<div class="viewcode-block" id="HostRemove.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostRemove.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">HostRemove</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname | all&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name or &quot;all&quot;&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname | all&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name or &quot;all&quot;&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="HostRemove.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostRemove.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">hostname</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hostname</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">hostname</span><span class="p">]</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="o">==</span> <span class="s">&#39;all&#39;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="o">==</span> <span class="s1">&#39;all&#39;</span><span class="p">:</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">_get_all_hostnames</span><span class="p">()</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">host_remove</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
@ -182,8 +182,8 @@
<div class="viewcode-block" id="HostList.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostList.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">HostList</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;[hostname]&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;[hostname]&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="HostList.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostList.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>
@ -201,11 +201,11 @@
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">hosts</span><span class="p">:</span>
<span class="k">for</span> <span class="n">host</span> <span class="ow">in</span> <span class="n">hosts</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</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">host</span><span class="o">.</span><span class="n">groupnames</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</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">host</span><span class="o">.</span><span class="n">get_groups</span><span class="p">()))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">))</span>
<span class="k">return</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;Host&#39;</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;Groups&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">return</span> <span class="p">((</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Groups&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
@ -218,46 +218,46 @@
<div class="viewcode-block" id="HostCheck.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostCheck.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">HostCheck</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname | all&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name or &quot;all&quot;&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--predeploy&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Run pre-deploy host checks.&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname | all&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name or &quot;all&quot;&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--predeploy&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Run pre-deploy host checks.&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="HostCheck.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostCheck.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">hostname</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hostname</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="p">[</span><span class="n">hostname</span><span class="p">]</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="o">==</span> <span class="s">&#39;all&#39;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="o">==</span> <span class="s1">&#39;all&#39;</span><span class="p">:</span>
<span class="n">hostnames</span> <span class="o">=</span> <span class="n">_get_all_hostnames</span><span class="p">()</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">predeploy</span><span class="p">:</span>
<span class="c"># run pre-deploy checks</span>
<span class="c1"># run pre-deploy checks</span>
<span class="n">verbose_level</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">app</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">verbose_level</span>
<span class="n">job</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">async_host_precheck</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">verbose_level</span><span class="p">)</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
<span class="k">if</span> <span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">2</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;</span><span class="se">\n\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s">{out}&#39;</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="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s1">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s1">{out}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">out</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_console_output</span><span class="p">()))</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="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;Job failed:</span><span class="se">\n</span><span class="s">{msg}&#39;</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="s1">&#39;Job failed:</span><span class="se">\n</span><span class="s1">{msg}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">msg</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_error_message</span><span class="p">()))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">summary</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">host_ssh_check</span><span class="p">(</span><span class="n">hostnames</span><span class="p">)</span>
<span class="n">all_ok</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">for</span> <span class="n">hostname</span><span class="p">,</span> <span class="n">info</span> <span class="ow">in</span> <span class="n">summary</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;success&#39;</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">info</span><span class="p">[</span><span class="s">&#39;success&#39;</span><span class="p">]:</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;failed- &#39;</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s">&#39;msg&#39;</span><span class="p">]</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;success&#39;</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">info</span><span class="p">[</span><span class="s1">&#39;success&#39;</span><span class="p">]:</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;failed- &#39;</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="n">info</span><span class="p">[</span><span class="s1">&#39;msg&#39;</span><span class="p">]</span>
<span class="n">all_ok</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">info</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;Host {host}: {sts} {msg}&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host {host}: {sts} {msg}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">,</span> <span class="n">sts</span><span class="o">=</span><span class="n">status</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="n">msg</span><span class="p">))</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">all_ok</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;Host check failed.&#39;</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="s1">&#39;Host check failed.&#39;</span><span class="p">))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</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">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
@ -269,45 +269,45 @@
<div class="viewcode-block" id="HostSetup.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostSetup.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">HostSetup</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--insecure&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">SUPPRESS</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--file&#39;</span><span class="p">,</span> <span class="s">&#39;-f&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;hosts_info_file&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Absolute path to hosts info file &#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;hostname&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hostname&gt;&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--insecure&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">SUPPRESS</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--file&#39;</span><span class="p">,</span> <span class="s1">&#39;-f&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;hosts_info_file&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Absolute path to hosts info file &#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="HostSetup.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.host.HostSetup.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="k">if</span> <span class="ow">not</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hostname</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">file</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;Host name or hosts info file path is required.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name or hosts info file path is required.&#39;</span><span class="p">))</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hostname</span> <span class="ow">and</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">file</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;Host name and hosts info file path &#39;</span>
<span class="s">&#39;cannot both be present.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name and hosts info file path &#39;</span>
<span class="s1">&#39;cannot both be present.&#39;</span><span class="p">))</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">file</span><span class="p">:</span>
<span class="c"># multi-host setup via xml file</span>
<span class="c1"># multi-host setup via xml file</span>
<span class="n">hosts_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_yml_data</span><span class="p">(</span><span class="n">parsed_args</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">strip</span><span class="p">())</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">host_setup</span><span class="p">(</span><span class="n">hosts_data</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="c"># single host setup</span>
<span class="c1"># single host setup</span>
<span class="n">hostname</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">hostname</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">summary</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">host_ssh_check</span><span class="p">([</span><span class="n">hostname</span><span class="p">])</span>
<span class="k">if</span> <span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">][</span><span class="s">&#39;success&#39;</span><span class="p">]:</span>
<span class="k">if</span> <span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">][</span><span class="s1">&#39;success&#39;</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s">&#39;Skipping setup of host ({host}) as &#39;</span>
<span class="s">&#39;ssh check is ok.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s1">&#39;Skipping setup of host ({host}) as &#39;</span>
<span class="s1">&#39;ssh check is ok.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">))</span>
<span class="k">return</span> <span class="bp">True</span>
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">insecure</span><span class="p">:</span>
<span class="n">password</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">insecure</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">password</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getpass</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;kolla password for {host}: &#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;kolla password for {host}: &#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">))</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">host_setup</span><span class="p">({</span><span class="n">hostname</span><span class="p">:</span> <span class="p">{</span><span class="s">&#39;password&#39;</span><span class="p">:</span> <span class="n">password</span><span class="p">}})</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">host_setup</span><span class="p">({</span><span class="n">hostname</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;password&#39;</span><span class="p">:</span> <span class="n">password</span><span class="p">}})</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
@ -317,15 +317,15 @@
<span class="k">def</span> <span class="nf">_get_yml_data</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">yml_path</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">isfile</span><span class="p">(</span><span class="n">yml_path</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;No file exists at {path}. An absolute file path is &#39;</span>
<span class="s">&#39;required.&#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">yml_path</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;No file exists at {path}. An absolute file path is &#39;</span>
<span class="s1">&#39;required.&#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">yml_path</span><span class="p">))</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">yml_path</span><span class="p">,</span> <span class="s">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">hosts_file</span><span class="p">:</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">yml_path</span><span class="p">,</span> <span class="s1">&#39;r&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">hosts_file</span><span class="p">:</span>
<span class="n">file_data</span> <span class="o">=</span> <span class="n">hosts_file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="n">hosts_info</span> <span class="o">=</span> <span class="n">yaml</span><span class="o">.</span><span class="n">safe_load</span><span class="p">(</span><span class="n">file_data</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">hosts_info</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;{path} is empty.&#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">yml_path</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="s1">&#39;{path} is empty.&#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">yml_path</span><span class="p">))</span>
<span class="k">return</span> <span class="n">hosts_info</span>
</div>
@ -368,7 +368,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.password &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.password</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">argparse</span>
<span class="kn">import</span> <span class="nn">getpass</span>
<span class="kn">import</span> <span class="nn">traceback</span>
@ -76,13 +76,13 @@
<div class="viewcode-block" id="PasswordSet"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.password.PasswordSet">[docs]</a><span class="k">class</span> <span class="nc">PasswordSet</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
<span class="s">&quot;Password Set&quot;</span>
<span class="s2">&quot;Password Set&quot;</span>
<div class="viewcode-block" id="PasswordSet.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.password.PasswordSet.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">PasswordSet</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;passwordname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;passwordname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Password name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--insecure&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s">&#39;?&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">SUPPRESS</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;passwordname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;passwordname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--insecure&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="s1">&#39;?&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">SUPPRESS</span><span class="p">)</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="PasswordSet.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.password.PasswordSet.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>
@ -91,11 +91,11 @@
<span class="k">if</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">insecure</span><span class="p">:</span>
<span class="n">password</span> <span class="o">=</span> <span class="n">parsed_args</span><span class="o">.</span><span class="n">insecure</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">password</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getpass</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;Password: &#39;</span><span class="p">))</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">passtwo</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getpass</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;Retype Password: &#39;</span><span class="p">))</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">password</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getpass</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password: &#39;</span><span class="p">))</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">passtwo</span> <span class="o">=</span> <span class="n">getpass</span><span class="o">.</span><span class="n">getpass</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Retype Password: &#39;</span><span class="p">))</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="k">if</span> <span class="n">password</span> <span class="o">!=</span> <span class="n">passtwo</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;Passwords do not match&#39;</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="s1">&#39;Passwords do not match&#39;</span><span class="p">))</span>
<span class="n">CLIENT</span><span class="o">.</span><span class="n">password_set</span><span class="p">(</span><span class="n">password_name</span><span class="p">,</span> <span class="n">password</span><span class="p">)</span>
@ -104,12 +104,12 @@
</div></div>
<div class="viewcode-block" id="PasswordClear"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.password.PasswordClear">[docs]</a><span class="k">class</span> <span class="nc">PasswordClear</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
<span class="s">&quot;Password Clear&quot;</span>
<span class="s2">&quot;Password Clear&quot;</span>
<div class="viewcode-block" id="PasswordClear.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.password.PasswordClear.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">PasswordClear</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;passwordname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;passwordname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Password name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;passwordname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;passwordname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="PasswordClear.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.password.PasswordClear.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>
@ -130,9 +130,9 @@
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">password_name</span> <span class="ow">in</span> <span class="n">password_names</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">password_name</span><span class="p">,</span> <span class="s">&#39;-&#39;</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">password_name</span><span class="p">,</span> <span class="s1">&#39;-&#39;</span><span class="p">))</span>
<span class="k">return</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;Password Name&#39;</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;Password&#39;</span><span class="p">)),</span> <span class="n">data</span><span class="p">)</span>
<span class="k">return</span> <span class="p">((</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password Name&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password&#39;</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="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></div></div>
</pre></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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.property &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,54 +47,56 @@
<div class="body">
<h1>Source code for kollacli.commands.property</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">traceback</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">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</span> <span class="kn">import</span> <span class="n">properties</span>
<span class="kn">from</span> <span class="nn">kollacli.common</span> <span class="kn">import</span> <span class="n">utils</span>
<span class="kn">from</span> <span class="nn">cliff.command</span> <span class="kn">import</span> <span class="n">Command</span>
<span class="kn">from</span> <span class="nn">cliff.lister</span> <span class="kn">import</span> <span class="n">Lister</span>
<span class="n">CLIENT</span> <span class="o">=</span> <span class="n">ClientApi</span><span class="p">()</span>
<span class="k">def</span> <span class="nf">_get_names</span><span class="p">(</span><span class="n">args_list</span><span class="p">):</span>
<span class="n">csv_list</span> <span class="o">=</span> <span class="n">args_list</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">names</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">convert_to_unicode</span><span class="p">(</span><span class="n">csv_list</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="s">&#39;all&#39;</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span>
<span class="n">names</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">convert_to_unicode</span><span class="p">(</span><span class="n">csv_list</span><span class="p">)</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="s1">&#39;all&#39;</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span>
<span class="n">names</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">return</span> <span class="n">names</span>
<div class="viewcode-block" id="PropertySet"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertySet">[docs]</a><span class="k">class</span> <span class="nc">PropertySet</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
<span class="s">&quot;Property Set&quot;</span>
<span class="s2">&quot;Property Set&quot;</span>
<div class="viewcode-block" id="PropertySet.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertySet.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">PropertySet</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;propertyname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;propertyname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;propertyvalue&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;propertyvalue&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</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="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property group list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;propertyname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;propertyname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;propertyvalue&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;propertyvalue&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property value&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property group list&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="PropertySet.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertySet.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>
@ -105,52 +107,40 @@
<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>
<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;Invalid to use both hosts and groups arguments &#39;</span>
<span class="s">&#39;together.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Invalid to use both hosts and groups arguments &#39;</span>
<span class="s1">&#39;together.&#39;</span><span class="p">))</span>
<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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">True</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_name</span><span class="p">,</span>
<span class="n">property_value</span><span class="p">,</span>
<span class="n">host_names</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="s1">&#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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">False</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_name</span><span class="p">,</span>
<span class="n">property_value</span><span class="p">,</span>
<span class="n">group_names</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="s1">&#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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">False</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_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_name</span><span class="p">,</span> <span class="n">property_value</span><span class="p">,</span>
<span class="s1">&#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>
</div></div>
<div class="viewcode-block" id="PropertyClear"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertyClear">[docs]</a><span class="k">class</span> <span class="nc">PropertyClear</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
<span class="s">&quot;Property Clear&quot;</span>
<span class="s2">&quot;Property Clear&quot;</span>
<div class="viewcode-block" id="PropertyClear.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertyClear.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">PropertyClear</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;propertyname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;propertyname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property group list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;propertyname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;propertyname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property group list&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<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>
@ -160,32 +150,20 @@
<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>
<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;Invalid to use both hosts and groups arguments &#39;</span>
<span class="s">&#39;together.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Invalid to use both hosts and groups arguments &#39;</span>
<span class="s1">&#39;together.&#39;</span><span class="p">))</span>
<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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">True</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_name</span><span class="p">,</span>
<span class="n">host_names</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="s1">&#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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">False</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_name</span><span class="p">,</span>
<span class="n">group_names</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="s1">&#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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">False</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_name</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="s1">&#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>
@ -205,16 +183,16 @@
<div class="viewcode-block" id="PropertyList.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertyList.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">PropertyList</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--all&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;List all properties&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--long&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Show all property attributes&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Property group list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--all&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;List all properties&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--long&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Show all property attributes&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--hosts&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;host_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property host list&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--groups&#39;</span><span class="p">,</span> <span class="n">nargs</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;group_list&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property group list&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="PropertyList.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.property.PropertyList.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>
@ -227,41 +205,27 @@
<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>
<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;Invalid to use both hosts and groups arguments &#39;</span>
<span class="s">&#39;together.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Invalid to use both hosts and groups arguments &#39;</span>
<span class="s1">&#39;together.&#39;</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">is_global</span> <span class="o">=</span> <span class="bp">False</span>
<span class="bp">self</span><span class="o">.</span><span class="n">list_type</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Host&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">list_type</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">)</span>
<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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> \
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_host_list</span><span class="p">(</span><span class="n">host_names</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">property_get</span><span class="p">(</span><span class="s1">&#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="bp">self</span><span class="o">.</span><span class="n">is_global</span> <span class="o">=</span> <span class="bp">False</span>
<span class="bp">self</span><span class="o">.</span><span class="n">list_type</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">list_type</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> \
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_group_list</span><span class="p">(</span><span class="n">group_names</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">property_get</span><span class="p">(</span><span class="s1">&#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">ansible_properties</span> <span class="o">=</span> \
<span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">(</span><span class="n">load_globals</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_groups</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">False</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">property_get</span><span class="p">(</span><span class="s1">&#39;global&#39;</span><span class="p">)</span>
<span class="n">property_list</span> <span class="o">=</span> <span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_all_unique</span><span class="p">()</span>
<span class="n">override_flags</span> <span class="o">=</span> <span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_all_override_flags</span><span class="p">()</span>
<span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_list_data</span><span class="p">(</span><span class="n">property_list</span><span class="p">,</span> <span class="n">override_flags</span><span class="p">)</span>
<span class="n">data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_list_data</span><span class="p">(</span><span class="n">property_list</span><span class="p">)</span>
<span class="n">header</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_list_header</span><span class="p">()</span>
<span class="k">return</span> <span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">data</span><span class="p">)</span>
@ -272,25 +236,25 @@
<span class="n">header</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_long_flag</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_global</span><span class="p">:</span>
<span class="n">header</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;OVR&#39;</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 Name&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Original Value&#39;</span><span class="p">))</span>
<span class="n">header</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="s1">&#39;OVR&#39;</span><span class="p">),</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Name&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Value&#39;</span><span class="p">),</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Original Value&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">header</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;OVR&#39;</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 Name&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Original Value&#39;</span><span class="p">),</span>
<span class="n">header</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="s1">&#39;OVR&#39;</span><span class="p">),</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Name&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Value&#39;</span><span class="p">),</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Original Value&#39;</span><span class="p">),</span>
<span class="bp">self</span><span class="o">.</span><span class="n">list_type</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_global</span><span class="p">:</span>
<span class="n">header</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;OVR&#39;</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 Name&#39;</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="n">header</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="s1">&#39;OVR&#39;</span><span class="p">),</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Name&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Value&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">header</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;OVR&#39;</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 Name&#39;</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="n">header</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="s1">&#39;OVR&#39;</span><span class="p">),</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Name&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Property Value&#39;</span><span class="p">),</span>
<span class="bp">self</span><span class="o">.</span><span class="n">list_type</span><span class="p">)</span>
<span class="k">return</span> <span class="n">header</span>
<span class="k">def</span> <span class="nf">_get_list_data</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">override_flags</span><span class="p">):</span>
<span class="k">def</span> <span class="nf">_get_list_data</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">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">property_list</span><span class="p">:</span>
<span class="n">property_length</span> <span class="o">=</span> <span class="n">utils</span><span class="o">.</span><span class="n">get_property_list_length</span><span class="p">()</span>
@ -306,17 +270,16 @@
<span class="k">if</span> <span class="ow">not</span> <span class="n">include_prop</span><span class="p">:</span>
<span class="k">continue</span>
<span class="n">ovr_global</span> <span class="o">=</span> <span class="s">&#39;-&#39;</span>
<span class="n">ovr_group</span> <span class="o">=</span> <span class="s">&#39;-&#39;</span>
<span class="n">ovr_host</span> <span class="o">=</span> <span class="s">&#39;-&#39;</span>
<span class="k">if</span> <span class="n">prop</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">override_flags</span><span class="p">:</span>
<span class="n">override_flag_set</span> <span class="o">=</span> <span class="n">override_flags</span><span class="p">[</span><span class="n">prop</span><span class="o">.</span><span class="n">name</span><span class="p">]</span>
<span class="k">if</span> <span class="n">override_flag_set</span><span class="o">.</span><span class="n">ovr_global</span><span class="p">:</span>
<span class="n">ovr_global</span> <span class="o">=</span> <span class="s">&#39;*&#39;</span>
<span class="k">if</span> <span class="n">override_flag_set</span><span class="o">.</span><span class="n">ovr_group</span><span class="p">:</span>
<span class="n">ovr_group</span> <span class="o">=</span> <span class="s">&#39;G&#39;</span>
<span class="k">if</span> <span class="n">override_flag_set</span><span class="o">.</span><span class="n">ovr_host</span><span class="p">:</span>
<span class="n">ovr_host</span> <span class="o">=</span> <span class="s">&#39;H&#39;</span>
<span class="n">ovr_global</span> <span class="o">=</span> <span class="s1">&#39;-&#39;</span>
<span class="n">ovr_group</span> <span class="o">=</span> <span class="s1">&#39;-&#39;</span>
<span class="n">ovr_host</span> <span class="o">=</span> <span class="s1">&#39;-&#39;</span>
<span class="k">if</span> <span class="n">prop</span><span class="o">.</span><span class="n">ovr_global</span><span class="p">:</span>
<span class="n">ovr_global</span> <span class="o">=</span> <span class="s1">&#39;*&#39;</span>
<span class="k">if</span> <span class="n">prop</span><span class="o">.</span><span class="n">ovr_group</span><span class="p">:</span>
<span class="n">ovr_group</span> <span class="o">=</span> <span class="s1">&#39;G&#39;</span>
<span class="k">if</span> <span class="n">prop</span><span class="o">.</span><span class="n">ovr_host</span><span class="p">:</span>
<span class="n">ovr_host</span> <span class="o">=</span> <span class="s1">&#39;H&#39;</span>
<span class="n">prop_ovr</span> <span class="o">=</span> <span class="n">ovr_global</span> <span class="o">+</span> <span class="n">ovr_group</span> <span class="o">+</span> <span class="n">ovr_host</span>
@ -336,14 +299,14 @@
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_long_flag</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_global</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_global</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">data</span></div>
</pre></div>
@ -379,7 +342,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.service &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.service</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">traceback</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
@ -83,10 +83,10 @@
<div class="viewcode-block" id="ServiceAddGroup.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.service.ServiceAddGroup.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">ServiceAddGroup</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Service name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="ServiceAddGroup.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.service.ServiceAddGroup.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>
@ -108,10 +108,10 @@
<div class="viewcode-block" id="ServiceRemoveGroup.get_parser"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.service.ServiceRemoveGroup.get_parser">[docs]</a> <span class="k">def</span> <span class="nf">get_parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog_name</span><span class="p">):</span>
<span class="n">parser</span> <span class="o">=</span> <span class="nb">super</span><span class="p">(</span><span class="n">ServiceRemoveGroup</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">get_parser</span><span class="p">(</span><span class="n">prog_name</span><span class="p">)</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Service name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Group name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;servicename&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;servicename&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name&#39;</span><span class="p">))</span>
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;groupname&#39;</span><span class="p">,</span> <span class="n">metavar</span><span class="o">=</span><span class="s1">&#39;&lt;groupname&gt;&#39;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name&#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="n">parser</span>
</div>
<div class="viewcode-block" id="ServiceRemoveGroup.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.service.ServiceRemoveGroup.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>
@ -133,23 +133,23 @@
<div class="viewcode-block" id="ServiceListGroups.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.service.ServiceListGroups.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">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)]</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)]</span>
<span class="n">services</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">service_get_all</span><span class="p">()</span>
<span class="k">if</span> <span class="n">services</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="n">services</span><span class="p">:</span>
<span class="n">inh_str</span> <span class="o">=</span> <span class="s">&#39;-&#39;</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">service</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">())</span>
<span class="n">parentname</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">get_parentname</span><span class="p">()</span>
<span class="n">inh_str</span> <span class="o">=</span> <span class="s1">&#39;-&#39;</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">service</span><span class="o">.</span><span class="n">get_groups</span><span class="p">())</span>
<span class="n">parentname</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">get_parent</span><span class="p">()</span>
<span class="k">if</span> <span class="n">parentname</span><span class="p">:</span>
<span class="c"># this is a subservice</span>
<span class="n">inh_str</span> <span class="o">=</span> <span class="s">&#39;no&#39;</span>
<span class="c1"># this is a subservice</span>
<span class="n">inh_str</span> <span class="o">=</span> <span class="s1">&#39;no&#39;</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">groupnames</span><span class="p">:</span>
<span class="c"># sub-service is inheriting groups from parent</span>
<span class="n">inh_str</span> <span class="o">=</span> <span class="s">&#39;yes&#39;</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="c1"># sub-service is inheriting groups from parent</span>
<span class="n">inh_str</span> <span class="o">=</span> <span class="s1">&#39;yes&#39;</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">service</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">groupnames</span><span class="p">,</span> <span class="n">inh_str</span><span class="p">))</span>
<span class="k">return</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;Service&#39;</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;Groups&#39;</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;Inherited&#39;</span><span class="p">)),</span>
<span class="k">return</span> <span class="p">((</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Groups&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Inherited&#39;</span><span class="p">)),</span>
<span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
@ -162,15 +162,15 @@
<div class="viewcode-block" id="ServiceList.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.service.ServiceList.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">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s">&#39;&#39;</span><span class="p">,</span> <span class="s">&#39;&#39;</span><span class="p">)]</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[(</span><span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)]</span>
<span class="n">services</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">service_get_all</span><span class="p">()</span>
<span class="k">if</span> <span class="n">services</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="n">services</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">service</span><span class="o">.</span><span class="n">get_parentname</span><span class="p">():</span>
<span class="c"># this is a service, not a subservice</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">service</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">service</span><span class="o">.</span><span class="n">get_childnames</span><span class="p">()))</span>
<span class="k">return</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;Service&#39;</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;Sub-Services&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">service</span><span class="o">.</span><span class="n">get_parent</span><span class="p">():</span>
<span class="c1"># this is a service, not a subservice</span>
<span class="n">data</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">service</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">service</span><span class="o">.</span><span class="n">get_children</span><span class="p">()))</span>
<span class="k">return</span> <span class="p">((</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service&#39;</span><span class="p">),</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Sub-Services&#39;</span><span class="p">)),</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">data</span><span class="p">))</span>
<span class="k">except</span> <span class="n">ClientException</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">CommandError</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">))</span>
@ -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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.support &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,22 +47,27 @@
<div class="body">
<h1>Source code for kollacli.commands.support</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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">from</span> <span class="nn">kollacli.common.support</span> <span class="kn">import</span> <span class="n">dump</span>
<span></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">from</span> <span class="nn">cliff.command</span> <span class="kn">import</span> <span class="n">Command</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">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">traceback</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>
<span class="n">CLIENT</span> <span class="o">=</span> <span class="n">ClientApi</span><span class="p">()</span>
<div class="viewcode-block" id="Dump"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.support.Dump">[docs]</a><span class="k">class</span> <span class="nc">Dump</span><span class="p">(</span><span class="n">Command</span><span class="p">):</span>
@ -73,7 +78,13 @@
<span class="sd"> debugging problems.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<div class="viewcode-block" id="Dump.take_action"><a class="viewcode-back" href="../../../kollacli.commands.html#kollacli.commands.support.Dump.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="n">dump</span><span class="p">()</span></div></div>
<span class="k">try</span><span class="p">:</span>
<span class="n">dump_path</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">support_dump</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Dump successful to {path}&#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">dump_path</span><span class="p">))</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</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="s1">&#39;Dump failed: {reason}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">()))</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span></div></div>
</pre></div>
</div>
@ -107,7 +118,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands.upgrade &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.commands.upgrade</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">traceback</span>
@ -88,13 +88,13 @@
<span class="n">job</span> <span class="o">=</span> <span class="n">CLIENT</span><span class="o">.</span><span class="n">async_upgrade</span><span class="p">(</span><span class="n">verbose_level</span><span class="p">)</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">job</span><span class="o">.</span><span class="n">wait</span><span class="p">()</span>
<span class="k">if</span> <span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">2</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;</span><span class="se">\n\n</span><span class="s">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s">{out}&#39;</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="s1">&#39;</span><span class="se">\n\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="mi">80</span> <span class="o">*</span> <span class="s1">&#39;=&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;DEBUG command output:</span><span class="se">\n</span><span class="s1">{out}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">out</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_console_output</span><span class="p">()))</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">LOG</span><span class="o">.</span><span class="n">info</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;Success&#39;</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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Success&#39;</span><span class="p">))</span>
<span class="k">else</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;Job failed:</span><span class="se">\n</span><span class="s">{msg}&#39;</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="s1">&#39;Job failed:</span><span class="se">\n</span><span class="s1">{msg}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">msg</span><span class="o">=</span><span class="n">job</span><span class="o">.</span><span class="n">get_error_message</span><span class="p">()))</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span>
@ -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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.ansible.actions &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.common.ansible.actions</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
@ -88,26 +88,26 @@
<span class="sd"> or killed. That will be determined by the destroy_type,</span>
<span class="sd"> which can either be &#39;stop&#39; or &#39;kill&#39;.</span>
<span class="sd"> &#39;&#39;&#39;</span>
<span class="n">playbook_name</span> <span class="o">=</span> <span class="s">&#39;host_destroy_no_data.yml&#39;</span>
<span class="n">playbook_name</span> <span class="o">=</span> <span class="s1">&#39;host_destroy_no_data.yml&#39;</span>
<span class="k">if</span> <span class="n">include_data</span><span class="p">:</span>
<span class="n">playbook_name</span> <span class="o">=</span> <span class="s">&#39;host_destroy.yml&#39;</span>
<span class="n">playbook_name</span> <span class="o">=</span> <span class="s1">&#39;host_destroy.yml&#39;</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s">&#39;Please be patient as this may take a while.&#39;</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s1">&#39;Please be patient as this may take a while.&#39;</span><span class="p">))</span>
<span class="n">ansible_properties</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="n">AnsibleProperties</span><span class="p">()</span>
<span class="n">base_distro</span> <span class="o">=</span> \
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="s">&#39;kolla_base_distro&#39;</span><span class="p">)</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="s1">&#39;kolla_base_distro&#39;</span><span class="p">)</span>
<span class="n">install_type</span> <span class="o">=</span> \
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="s">&#39;kolla_install_type&#39;</span><span class="p">)</span>
<span class="n">container_prefix</span> <span class="o">=</span> <span class="n">base_distro</span> <span class="o">+</span> <span class="s">&#39;-&#39;</span> <span class="o">+</span> <span class="n">install_type</span>
<span class="n">ansible_properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="s1">&#39;kolla_install_type&#39;</span><span class="p">)</span>
<span class="n">container_prefix</span> <span class="o">=</span> <span class="n">base_distro</span> <span class="o">+</span> <span class="s1">&#39;-&#39;</span> <span class="o">+</span> <span class="n">install_type</span>
<span class="n">kollacli_home</span> <span class="o">=</span> <span class="n">get_kollacli_home</span><span class="p">()</span>
<span class="n">playbook</span> <span class="o">=</span> <span class="n">AnsiblePlaybook</span><span class="p">()</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">playbook_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">kollacli_home</span><span class="p">,</span>
<span class="s">&#39;ansible/&#39;</span> <span class="o">+</span> <span class="n">playbook_name</span><span class="p">)</span>
<span class="s1">&#39;ansible/&#39;</span> <span class="o">+</span> <span class="n">playbook_name</span><span class="p">)</span>
<span class="c"># &#39;hosts&#39; is defined as &#39;all&#39; in the playbook yml code, but inventory</span>
<span class="c"># filtering will subset that down to the hosts in playbook.hosts.</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">extra_vars</span> <span class="o">=</span> <span class="s">&#39;prefix=&#39;</span> <span class="o">+</span> <span class="n">container_prefix</span> <span class="o">+</span> \
<span class="s">&#39; destroy_type=&#39;</span> <span class="o">+</span> <span class="n">destroy_type</span>
<span class="c1"># &#39;hosts&#39; is defined as &#39;all&#39; in the playbook yml code, but inventory</span>
<span class="c1"># filtering will subset that down to the hosts in playbook.hosts.</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">extra_vars</span> <span class="o">=</span> <span class="s1">&#39;prefix=&#39;</span> <span class="o">+</span> <span class="n">container_prefix</span> <span class="o">+</span> \
<span class="s1">&#39; destroy_type=&#39;</span> <span class="o">+</span> <span class="n">destroy_type</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">hosts</span> <span class="o">=</span> <span class="n">hostnames</span>
<span class="k">if</span> <span class="n">verbose_level</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">print_output</span> <span class="o">=</span> <span class="bp">False</span>
@ -121,7 +121,7 @@
<span class="n">playbook</span> <span class="o">=</span> <span class="n">AnsiblePlaybook</span><span class="p">()</span>
<span class="n">kolla_home</span> <span class="o">=</span> <span class="n">get_kolla_home</span><span class="p">()</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">playbook_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">kolla_home</span><span class="p">,</span>
<span class="s">&#39;ansible/site.yml&#39;</span><span class="p">)</span>
<span class="s1">&#39;ansible/site.yml&#39;</span><span class="p">)</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">hosts</span> <span class="o">=</span> <span class="n">hostnames</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">groups</span> <span class="o">=</span> <span class="n">groupnames</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">services</span> <span class="o">=</span> <span class="n">servicenames</span>
@ -137,15 +137,15 @@
</div>
<div class="viewcode-block" id="precheck"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.actions.precheck">[docs]</a><span class="k">def</span> <span class="nf">precheck</span><span class="p">(</span><span class="n">hostnames</span><span class="p">,</span> <span class="n">verbose_level</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
<span class="sd">&#39;&#39;&#39;run check playbooks on a set of hosts&#39;&#39;&#39;</span>
<span class="n">playbook_name</span> <span class="o">=</span> <span class="s">&#39;prechecks.yml&#39;</span>
<span class="n">playbook_name</span> <span class="o">=</span> <span class="s1">&#39;prechecks.yml&#39;</span>
<span class="n">kolla_home</span> <span class="o">=</span> <span class="n">get_kolla_home</span><span class="p">()</span>
<span class="n">playbook</span> <span class="o">=</span> <span class="n">AnsiblePlaybook</span><span class="p">()</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">playbook_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">kolla_home</span><span class="p">,</span>
<span class="s">&#39;ansible/&#39;</span> <span class="o">+</span> <span class="n">playbook_name</span><span class="p">)</span>
<span class="s1">&#39;ansible/&#39;</span> <span class="o">+</span> <span class="n">playbook_name</span><span class="p">)</span>
<span class="c"># define &#39;hosts&#39; to be all, but inventory filtering will subset</span>
<span class="c"># that down to the hosts in playbook.hosts.</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">extra_vars</span> <span class="o">=</span> <span class="s">&#39;hosts=all&#39;</span>
<span class="c1"># define &#39;hosts&#39; to be all, but inventory filtering will subset</span>
<span class="c1"># that down to the hosts in playbook.hosts.</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">extra_vars</span> <span class="o">=</span> <span class="s1">&#39;hosts=all&#39;</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">hosts</span> <span class="o">=</span> <span class="n">hostnames</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">print_output</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">verbose_level</span> <span class="o">=</span> <span class="n">verbose_level</span>
@ -157,8 +157,8 @@
<span class="n">playbook</span> <span class="o">=</span> <span class="n">AnsiblePlaybook</span><span class="p">()</span>
<span class="n">kolla_home</span> <span class="o">=</span> <span class="n">get_kolla_home</span><span class="p">()</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">playbook_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">kolla_home</span><span class="p">,</span>
<span class="s">&#39;ansible/site.yml&#39;</span><span class="p">)</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">extra_vars</span> <span class="o">=</span> <span class="s">&#39;action=upgrade&#39;</span>
<span class="s1">&#39;ansible/site.yml&#39;</span><span class="p">)</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">extra_vars</span> <span class="o">=</span> <span class="s1">&#39;action=upgrade&#39;</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">print_output</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">playbook</span><span class="o">.</span><span class="n">verbose_level</span> <span class="o">=</span> <span class="n">verbose_level</span>
<span class="n">job</span> <span class="o">=</span> <span class="n">playbook</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
@ -169,21 +169,21 @@
<span class="n">properties</span> <span class="o">=</span> <span class="n">AnsibleProperties</span><span class="p">()</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="c"># cannot have both groups and hosts</span>
<span class="c1"># cannot have both groups and hosts</span>
<span class="k">if</span> <span class="n">playbook</span><span class="o">.</span><span class="n">hosts</span> <span class="ow">and</span> <span class="n">playbook</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidArgument</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;Hosts and Groups arguments cannot &#39;</span>
<span class="s">&#39;both be present at the same time.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Hosts and Groups arguments cannot &#39;</span>
<span class="s1">&#39;both be present at the same time.&#39;</span><span class="p">))</span>
<span class="c"># verify that all services exists</span>
<span class="c1"># verify that all services exists</span>
<span class="k">if</span> <span class="n">playbook</span><span class="o">.</span><span class="n">services</span><span class="p">:</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="n">playbook</span><span class="o">.</span><span class="n">services</span><span class="p">:</span>
<span class="n">valid_service</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_service</span><span class="p">(</span><span class="n">service</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">valid_service</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Service&#39;</span><span class="p">),</span> <span class="n">service</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service&#39;</span><span class="p">),</span> <span class="n">service</span><span class="p">)</span>
<span class="c"># check that every group with enabled services</span>
<span class="c"># has hosts associated to it</span>
<span class="c1"># check that every group with enabled services</span>
<span class="c1"># has hosts associated to it</span>
<span class="n">group_services</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group_services</span><span class="p">()</span>
<span class="n">failed_groups</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">failed_services</span> <span class="o">=</span> <span class="p">[]</span>
@ -194,42 +194,79 @@
<span class="n">group_needs_host</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">hosts</span><span class="p">:</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="c"># check service enablement</span>
<span class="n">enabled_property</span> <span class="o">=</span> <span class="s">&#39;enable_&#39;</span> <span class="o">+</span> <span class="n">service</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s">&#39;-&#39;</span><span class="p">,</span> <span class="s">&#39;_&#39;</span><span class="p">)</span>
<span class="n">is_enabled</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="n">enabled_property</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_string_true</span><span class="p">(</span><span class="n">is_enabled</span><span class="p">):</span>
<span class="k">for</span> <span class="n">servicename</span> <span class="ow">in</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="k">if</span> <span class="n">_is_service_enabled</span><span class="p">(</span><span class="n">servicename</span><span class="p">,</span> <span class="n">inventory</span><span class="p">,</span> <span class="n">properties</span><span class="p">):</span>
<span class="n">group_needs_host</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">failed_services</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">service</span><span class="p">)</span>
<span class="n">failed_services</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="k">if</span> <span class="n">group_needs_host</span><span class="p">:</span>
<span class="n">failed_groups</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">failed_groups</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidConfiguration</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;Deploy failed. &#39;</span>
<span class="s">&#39;Groups: {groups} with enabled &#39;</span>
<span class="s">&#39;services : {services} &#39;</span>
<span class="s">&#39;have no associated hosts&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Deploy failed. &#39;</span>
<span class="s1">&#39;Groups: {groups} with enabled &#39;</span>
<span class="s1">&#39;services : {services} &#39;</span>
<span class="s1">&#39;have no associated hosts&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">groups</span><span class="o">=</span><span class="n">failed_groups</span><span class="p">,</span> <span class="n">services</span><span class="o">=</span><span class="n">failed_services</span><span class="p">))</span>
<span class="c"># check that ring files are in /etc/kolla/config/swift if</span>
<span class="c"># swift is enabled</span>
<span class="n">expected_files</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;account.ring.gz&#39;</span><span class="p">,</span>
<span class="s">&#39;container.ring.gz&#39;</span><span class="p">,</span>
<span class="s">&#39;object.ring.gz&#39;</span><span class="p">]</span>
<span class="n">is_enabled</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="s">&#39;enable_swift&#39;</span><span class="p">)</span>
<span class="c1"># check that ring files are in /etc/kolla/config/swift if</span>
<span class="c1"># swift is enabled</span>
<span class="n">expected_files</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;account.ring.gz&#39;</span><span class="p">,</span>
<span class="s1">&#39;container.ring.gz&#39;</span><span class="p">,</span>
<span class="s1">&#39;object.ring.gz&#39;</span><span class="p">]</span>
<span class="n">is_enabled</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="s1">&#39;enable_swift&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_string_true</span><span class="p">(</span><span class="n">is_enabled</span><span class="p">):</span>
<span class="n">path_pre</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_kolla_etc</span><span class="p">(),</span> <span class="s">&#39;config&#39;</span><span class="p">,</span> <span class="s">&#39;swift&#39;</span><span class="p">)</span>
<span class="n">path_pre</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_kolla_etc</span><span class="p">(),</span> <span class="s1">&#39;config&#39;</span><span class="p">,</span> <span class="s1">&#39;swift&#39;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">expected_file</span> <span class="ow">in</span> <span class="n">expected_files</span><span class="p">:</span>
<span class="n">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">path_pre</span><span class="p">,</span> <span class="n">expected_file</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">isfile</span><span class="p">(</span><span class="n">path</span><span class="p">):</span>
<span class="n">msg</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span>
<span class="s">&#39;Deploy failed. &#39;</span>
<span class="s">&#39;Swift is enabled but ring buffers have &#39;</span>
<span class="s">&#39;not yet been set up. Please see the &#39;</span>
<span class="s">&#39;documentation for swift configuration &#39;</span>
<span class="s">&#39;instructions.&#39;</span><span class="p">)</span>
<span class="s1">&#39;Deploy failed. &#39;</span>
<span class="s1">&#39;Swift is enabled but ring buffers have &#39;</span>
<span class="s1">&#39;not yet been set up. Please see the &#39;</span>
<span class="s1">&#39;documentation for swift configuration &#39;</span>
<span class="s1">&#39;instructions.&#39;</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">InvalidConfiguration</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_is_service_enabled</span><span class="p">(</span><span class="n">servicename</span><span class="p">,</span> <span class="n">inventory</span><span class="p">,</span> <span class="n">properties</span><span class="p">):</span>
<span class="n">service_enabled</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">service</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">sub_service</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_sub_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="k">if</span> <span class="n">sub_service</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
<span class="n">enabled_property</span> <span class="o">=</span> <span class="s1">&#39;enable_&#39;</span> <span class="o">+</span> <span class="n">servicename</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="s1">&#39;_&#39;</span><span class="p">)</span>
<span class="n">is_enabled</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="n">enabled_property</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_string_true</span><span class="p">(</span><span class="n">is_enabled</span><span class="p">):</span>
<span class="n">service_enabled</span> <span class="o">=</span> <span class="bp">True</span>
<span class="c1"># Only bother looking at the parent service if the sub service</span>
<span class="c1"># is enabled.</span>
<span class="k">if</span> <span class="n">service_enabled</span><span class="p">:</span>
<span class="n">servicename</span> <span class="o">=</span> <span class="n">sub_service</span><span class="o">.</span><span class="n">get_parent_service_name</span><span class="p">()</span>
<span class="k">if</span> <span class="n">servicename</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="n">servicename</span> <span class="o">=</span> <span class="n">_find_parent_service</span><span class="p">(</span><span class="n">sub_service</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">inventory</span><span class="p">)</span>
<span class="n">service</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="k">if</span> <span class="n">service</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span><span class="p">:</span>
<span class="n">enabled_property</span> <span class="o">=</span> <span class="s1">&#39;enable_&#39;</span> <span class="o">+</span> <span class="n">servicename</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39;-&#39;</span><span class="p">,</span> <span class="s1">&#39;_&#39;</span><span class="p">)</span>
<span class="n">is_enabled</span> <span class="o">=</span> <span class="n">properties</span><span class="o">.</span><span class="n">get_property</span><span class="p">(</span><span class="n">enabled_property</span><span class="p">)</span>
<span class="k">if</span> <span class="n">is_string_true</span><span class="p">(</span><span class="n">is_enabled</span><span class="p">):</span>
<span class="n">service_enabled</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">service_enabled</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">return</span> <span class="n">service_enabled</span>
<span class="k">def</span> <span class="nf">_find_parent_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">,</span> <span class="n">inventory</span><span class="p">):</span>
<span class="n">services</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_services</span><span class="p">()</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="n">services</span><span class="p">:</span>
<span class="n">sub_servicenames</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">get_sub_servicenames</span><span class="p">()</span>
<span class="k">for</span> <span class="n">sub_servicename</span> <span class="ow">in</span> <span class="n">sub_servicenames</span><span class="p">:</span>
<span class="k">if</span> <span class="n">sub_servicename</span> <span class="o">==</span> <span class="n">servicename</span><span class="p">:</span>
<span class="k">return</span> <span class="n">service</span><span class="o">.</span><span class="n">name</span>
<span class="k">return</span> <span class="bp">None</span>
</pre></div>
</div>
@ -263,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.ansible.job &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,24 +47,24 @@
<div class="body">
<h1>Source code for kollacli.common.ansible.job</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">fcntl</span>
<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">subprocess</span> <span class="c"># nosec</span>
<span class="kn">import</span> <span class="nn">subprocess</span> <span class="c1"># nosec</span>
<span class="kn">import</span> <span class="nn">tempfile</span>
<span class="kn">import</span> <span class="nn">time</span>
@ -78,14 +78,14 @@
<span class="n">LINE_LENGTH</span> <span class="o">=</span> <span class="mi">80</span>
<span class="n">PIPE_PREFIX</span> <span class="o">=</span> <span class="s">&#39;.kolla_pipe_&#39;</span>
<span class="n">PIPE_PREFIX</span> <span class="o">=</span> <span class="s1">&#39;.kolla_pipe_&#39;</span>
<span class="c"># action defs</span>
<span class="n">ACTION_PLAY_START</span> <span class="o">=</span> <span class="s">&#39;play_start&#39;</span>
<span class="n">ACTION_TASK_START</span> <span class="o">=</span> <span class="s">&#39;task_start&#39;</span>
<span class="n">ACTION_TASK_END</span> <span class="o">=</span> <span class="s">&#39;task_end&#39;</span>
<span class="n">ACTION_INCLUDE_FILE</span> <span class="o">=</span> <span class="s">&#39;includefile&#39;</span>
<span class="n">ACTION_STATS</span> <span class="o">=</span> <span class="s">&#39;stats&#39;</span>
<span class="c1"># action defs</span>
<span class="n">ACTION_PLAY_START</span> <span class="o">=</span> <span class="s1">&#39;play_start&#39;</span>
<span class="n">ACTION_TASK_START</span> <span class="o">=</span> <span class="s1">&#39;task_start&#39;</span>
<span class="n">ACTION_TASK_END</span> <span class="o">=</span> <span class="s1">&#39;task_end&#39;</span>
<span class="n">ACTION_INCLUDE_FILE</span> <span class="o">=</span> <span class="s1">&#39;includefile&#39;</span>
<span class="n">ACTION_STATS</span> <span class="o">=</span> <span class="s1">&#39;stats&#39;</span>
<div class="viewcode-block" id="AnsibleJob"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.job.AnsibleJob">[docs]</a><span class="k">class</span> <span class="nc">AnsibleJob</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
@ -97,30 +97,30 @@
<span class="bp">self</span><span class="o">.</span><span class="n">_print_output</span> <span class="o">=</span> <span class="n">print_output</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_temp_inv_path</span> <span class="o">=</span> <span class="n">inventory_path</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fragment</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fragment</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_is_first_packet</span> <span class="o">=</span> <span class="bp">True</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fifo_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">tempfile</span><span class="o">.</span><span class="n">gettempdir</span><span class="p">(),</span> <span class="s">&#39;</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">PIPE_PREFIX</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_deploy_id</span><span class="p">))</span>
<span class="n">tempfile</span><span class="o">.</span><span class="n">gettempdir</span><span class="p">(),</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">_</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">PIPE_PREFIX</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_deploy_id</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fifo_fd</span> <span class="o">=</span> <span class="bp">None</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_process</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">_cmd_output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</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="c"># create and open named pipe, must be owned by kolla group</span>
<span class="c1"># 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>
<span class="n">os</span><span class="o">.</span><span class="n">chown</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="n">os</span><span class="o">.</span><span class="n">getuid</span><span class="p">(),</span> <span class="n">grp_id</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fifo_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">_fifo_path</span><span class="p">,</span>
<span class="n">os</span><span class="o">.</span><span class="n">O_RDONLY</span> <span class="o">|</span> <span class="n">os</span><span class="o">.</span><span class="n">O_NONBLOCK</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">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_command</span><span class="p">,</span> <span class="c"># nosec</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_process</span> <span class="o">=</span> <span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_command</span><span class="p">,</span> <span class="c1"># nosec</span>
<span class="n">shell</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">stdout</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="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="c1"># setup stdout to be read without blocking</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>
@ -158,17 +158,17 @@
<span class="k">try</span><span class="p">:</span>
<span class="n">out</span> <span class="o">=</span> <span class="n">safe_decode</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">read</span><span class="p">())</span>
<span class="k">if</span> <span class="n">out</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="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">except</span> <span class="ne">IOError</span><span class="p">:</span> <span class="c"># nosec</span>
<span class="c"># error can happen if stdout is empty</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_cmd_output</span> <span class="o">=</span> <span class="s1">&#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">except</span> <span class="ne">IOError</span><span class="p">:</span> <span class="c1"># nosec</span>
<span class="c1"># error can happen if stdout is empty</span>
<span class="k">pass</span>
<span class="k">return</span> <span class="n">status</span>
</div>
<div class="viewcode-block" id="AnsibleJob.get_error_message"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.job.AnsibleJob.get_error_message">[docs]</a> <span class="k">def</span> <span class="nf">get_error_message</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;&quot;get error message&quot;&quot;&quot;</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_errors</span><span class="p">:</span>
<span class="n">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">msg</span><span class="p">,</span> <span class="n">error</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">msg</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">msg</span><span class="p">,</span> <span class="n">error</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">])</span>
<span class="k">return</span> <span class="n">msg</span>
</div>
<div class="viewcode-block" id="AnsibleJob.get_command_output"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.job.AnsibleJob.get_command_output">[docs]</a> <span class="k">def</span> <span class="nf">get_command_output</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@ -184,15 +184,15 @@
<span class="n">LOG</span><span class="o">.</span><span class="n">info</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_cleanup</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c"># delete temp inventory file</span>
<span class="c1"># 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 and delete the named pipe (fifo)</span>
<span class="c1"># close and delete the named pipe (fifo)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fifo_fd</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">close</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_fifo_fd</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span> <span class="c"># nosec</span>
<span class="c"># fifo already closed</span>
<span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span> <span class="c1"># nosec</span>
<span class="c1"># fifo already closed</span>
<span class="k">pass</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fifo_path</span> <span class="ow">and</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">_fifo_path</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">_fifo_path</span><span class="p">)</span>
@ -203,18 +203,18 @@
<span class="k">try</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_fifo_fd</span><span class="p">,</span> <span class="mi">1000000</span><span class="p">)</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span> <span class="c"># nosec</span>
<span class="c"># error can happen if fifo is empty</span>
<span class="k">except</span> <span class="ne">OSError</span><span class="p">:</span> <span class="c1"># nosec</span>
<span class="c1"># error can happen if fifo is empty</span>
<span class="k">pass</span>
<span class="k">if</span> <span class="n">data</span><span class="p">:</span>
<span class="n">packets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_deserialize_packets</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="k">for</span> <span class="n">packet</span> <span class="ow">in</span> <span class="n">packets</span><span class="p">:</span>
<span class="n">formatted_data</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_packet</span><span class="p">(</span><span class="n">packet</span><span class="p">)</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">formatted_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">lines</span> <span class="o">=</span> <span class="n">formatted_data</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_log_lines</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span>
<span class="k">def</span> <span class="nf">_format_packet</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packet</span><span class="p">):</span>
<span class="n">action</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;action&#39;</span><span class="p">]</span>
<span class="n">action</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;action&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="n">action</span> <span class="o">==</span> <span class="n">ACTION_INCLUDE_FILE</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_include_file</span><span class="p">(</span><span class="n">packet</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="n">ACTION_PLAY_START</span><span class="p">:</span>
@ -226,66 +226,66 @@
<span class="k">elif</span> <span class="n">action</span> <span class="o">==</span> <span class="n">ACTION_TASK_START</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_format_task_start</span><span class="p">(</span><span class="n">packet</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Invalid action [{action}] from callback&#39;</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="s1">&#39;Invalid action [{action}] from callback&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">action</span><span class="o">=</span><span class="n">action</span><span class="p">))</span>
<span class="k">def</span> <span class="nf">_format_include_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packet</span><span class="p">):</span>
<span class="k">return</span> <span class="s">&#39;included: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;filename&#39;</span><span class="p">]</span>
<span class="k">return</span> <span class="s1">&#39;included: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;filename&#39;</span><span class="p">]</span>
<span class="k">def</span> <span class="nf">_format_play_start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packet</span><span class="p">):</span>
<span class="n">msg</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">_add_filler</span><span class="p">(</span><span class="s">&#39;PLAY &#39;</span><span class="p">,</span> <span class="n">LINE_LENGTH</span><span class="p">,</span> <span class="s">&#39;*&#39;</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="s1">&#39;PLAY &#39;</span><span class="p">,</span> <span class="n">LINE_LENGTH</span><span class="p">,</span> <span class="s1">&#39;*&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_is_first_packet</span><span class="p">:</span>
<span class="n">msg</span> <span class="o">+=</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">Playbook: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;playbook&#39;</span><span class="p">]</span>
<span class="n">msg</span> <span class="o">+=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">Playbook: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;playbook&#39;</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_is_first_packet</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">return</span> <span class="n">msg</span>
<span class="k">def</span> <span class="nf">_format_stats</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packet</span><span class="p">):</span>
<span class="c"># each element is a dictionary with host as key</span>
<span class="n">msg</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">_add_filler</span><span class="p">(</span><span class="s">&#39;PLAY RECAP &#39;</span><span class="p">,</span> <span class="n">LINE_LENGTH</span><span class="p">,</span> <span class="s">&#39;*&#39;</span><span class="p">)</span>
<span class="n">processed</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;processed&#39;</span><span class="p">]</span>
<span class="n">ok</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;ok&#39;</span><span class="p">]</span>
<span class="n">changed</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;changed&#39;</span><span class="p">]</span>
<span class="n">unreachable</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;unreachable&#39;</span><span class="p">]</span>
<span class="n">failures</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;failures&#39;</span><span class="p">]</span>
<span class="c1"># each element is a dictionary with host as key</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="s1">&#39;PLAY RECAP &#39;</span><span class="p">,</span> <span class="n">LINE_LENGTH</span><span class="p">,</span> <span class="s1">&#39;*&#39;</span><span class="p">)</span>
<span class="n">processed</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;processed&#39;</span><span class="p">]</span>
<span class="n">ok</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;ok&#39;</span><span class="p">]</span>
<span class="n">changed</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;changed&#39;</span><span class="p">]</span>
<span class="n">unreachable</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;unreachable&#39;</span><span class="p">]</span>
<span class="n">failures</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;failures&#39;</span><span class="p">]</span>
<span class="k">for</span> <span class="n">host</span> <span class="ow">in</span> <span class="n">processed</span><span class="p">:</span>
<span class="n">hostline</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\n</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">_add_filler</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="s">&#39; &#39;</span><span class="p">)</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="p">(</span><span class="s">&#39;: ok=</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">_add_filler</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">ok</span><span class="p">[</span><span class="n">host</span><span class="p">],</span> <span class="mi">5</span><span class="p">,</span> <span class="s">&#39; &#39;</span><span class="p">))</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="p">(</span><span class="s">&#39;changed=</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">_add_filler</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">changed</span><span class="p">[</span><span class="n">host</span><span class="p">],</span> <span class="mi">5</span><span class="p">,</span> <span class="s">&#39; &#39;</span><span class="p">))</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="p">(</span><span class="s">&#39;unreachable=</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">_add_filler</span><span class="p">(</span><span class="s">&#39;</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">unreachable</span><span class="p">[</span><span class="n">host</span><span class="p">],</span> <span class="mi">5</span><span class="p">,</span> <span class="s">&#39; &#39;</span><span class="p">))</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="s">&#39;failed=</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">failures</span><span class="p">[</span><span class="n">host</span><span class="p">]</span>
<span class="n">hostline</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="mi">28</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">)</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="p">(</span><span class="s1">&#39;: ok=</span><span class="si">%s</span><span class="s1">&#39;</span>
<span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">ok</span><span class="p">[</span><span class="n">host</span><span class="p">],</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">))</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="p">(</span><span class="s1">&#39;changed=</span><span class="si">%s</span><span class="s1">&#39;</span>
<span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">changed</span><span class="p">[</span><span class="n">host</span><span class="p">],</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">))</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="p">(</span><span class="s1">&#39;unreachable=</span><span class="si">%s</span><span class="s1">&#39;</span>
<span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">unreachable</span><span class="p">[</span><span class="n">host</span><span class="p">],</span> <span class="mi">5</span><span class="p">,</span> <span class="s1">&#39; &#39;</span><span class="p">))</span>
<span class="n">hostline</span> <span class="o">+=</span> <span class="s1">&#39;failed=</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">failures</span><span class="p">[</span><span class="n">host</span><span class="p">]</span>
<span class="n">msg</span> <span class="o">+=</span> <span class="n">hostline</span>
<span class="k">return</span> <span class="n">msg</span>
<span class="k">def</span> <span class="nf">_format_task_end</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packet</span><span class="p">):</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;host&#39;</span><span class="p">]</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;status&#39;</span><span class="p">]</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;</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">status</span><span class="p">,</span> <span class="n">host</span><span class="p">)</span>
<span class="k">if</span> <span class="n">status</span> <span class="o">==</span> <span class="s">&#39;failed&#39;</span> <span class="ow">or</span> <span class="n">status</span> <span class="o">==</span> <span class="s">&#39;unreachable&#39;</span><span class="p">:</span>
<span class="n">results_dict</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;results&#39;</span><span class="p">]</span>
<span class="n">taskname</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;task&#39;</span><span class="p">][</span><span class="s">&#39;name&#39;</span><span class="p">]</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;host&#39;</span><span class="p">]</span>
<span class="n">status</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;status&#39;</span><span class="p">]</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: [</span><span class="si">%s</span><span class="s1">]&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">status</span><span class="p">,</span> <span class="n">host</span><span class="p">)</span>
<span class="k">if</span> <span class="n">status</span> <span class="o">==</span> <span class="s1">&#39;failed&#39;</span> <span class="ow">or</span> <span class="n">status</span> <span class="o">==</span> <span class="s1">&#39;unreachable&#39;</span><span class="p">:</span>
<span class="n">results_dict</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;results&#39;</span><span class="p">]</span>
<span class="n">taskname</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;task&#39;</span><span class="p">][</span><span class="s1">&#39;name&#39;</span><span class="p">]</span>
<span class="c"># update saved error messages</span>
<span class="c1"># update saved error messages</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_format_error</span><span class="p">(</span><span class="n">taskname</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span>
<span class="n">status</span><span class="p">,</span> <span class="n">results_dict</span><span class="p">))</span>
<span class="c"># format log message</span>
<span class="c1"># format log message</span>
<span class="n">results</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_dict</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s">&#39;fatal: [</span><span class="si">%s</span><span class="s">]: </span><span class="si">%s</span><span class="s">! =&gt; </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">status</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">results</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;fatal: [</span><span class="si">%s</span><span class="s1">]: </span><span class="si">%s</span><span class="s1">! =&gt; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">host</span><span class="p">,</span> <span class="n">status</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">results</span><span class="p">)</span>
<span class="k">return</span> <span class="n">msg</span>
<span class="k">def</span> <span class="nf">_format_task_start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">packet</span><span class="p">):</span>
<span class="n">taskname</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s">&#39;name&#39;</span><span class="p">]</span>
<span class="n">task_line</span> <span class="o">=</span> <span class="s">&#39;TASK [</span><span class="si">%s</span><span class="s">] &#39;</span> <span class="o">%</span> <span class="n">taskname</span>
<span class="n">msg</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">_add_filler</span><span class="p">(</span><span class="n">task_line</span><span class="p">,</span> <span class="n">LINE_LENGTH</span><span class="p">,</span> <span class="s">&#39;*&#39;</span><span class="p">)</span>
<span class="n">taskname</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="s1">&#39;name&#39;</span><span class="p">]</span>
<span class="n">task_line</span> <span class="o">=</span> <span class="s1">&#39;TASK [</span><span class="si">%s</span><span class="s1">] &#39;</span> <span class="o">%</span> <span class="n">taskname</span>
<span class="n">msg</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add_filler</span><span class="p">(</span><span class="n">task_line</span><span class="p">,</span> <span class="n">LINE_LENGTH</span><span class="p">,</span> <span class="s1">&#39;*&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">msg</span>
<span class="k">def</span> <span class="nf">_format_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">taskname</span><span class="p">,</span> <span class="n">host</span><span class="p">,</span> <span class="n">status</span><span class="p">,</span> <span class="n">results</span><span class="p">):</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="k">if</span> <span class="s">&#39;msg&#39;</span> <span class="ow">in</span> <span class="n">results</span> <span class="ow">and</span> <span class="n">results</span><span class="p">[</span><span class="s">&#39;msg&#39;</span><span class="p">]:</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="n">results</span><span class="p">[</span><span class="s">&#39;msg&#39;</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="n">err_msg</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">if</span> <span class="s1">&#39;msg&#39;</span> <span class="ow">in</span> <span class="n">results</span> <span class="ow">and</span> <span class="n">results</span><span class="p">[</span><span class="s1">&#39;msg&#39;</span><span class="p">]:</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="n">results</span><span class="p">[</span><span class="s1">&#39;msg&#39;</span><span class="p">]</span>
<span class="n">msg</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;Host: </span><span class="si">%s</span><span class="s1">, Task: </span><span class="si">%s</span><span class="s1">, Status: </span><span class="si">%s</span><span class="s1">, Message: </span><span class="si">%s</span><span class="s1">&#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>
@ -304,29 +304,29 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">packets</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">has_fragment</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">endswith</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="n">data</span><span class="o">.</span><span class="n">endswith</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">):</span>
<span class="n">has_fragment</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">i</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">lines</span> <span class="o">=</span> <span class="n">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">lines</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
<span class="n">num_lines</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span>
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">line</span><span class="p">:</span>
<span class="c"># ignore empty string lines</span>
<span class="c1"># ignore empty string lines</span>
<span class="k">continue</span>
<span class="n">i</span> <span class="o">+=</span> <span class="mi">1</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span>
<span class="c"># first line</span>
<span class="c1"># first line</span>
<span class="n">line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fragment</span> <span class="o">+</span> <span class="n">line</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fragment</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fragment</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">elif</span> <span class="n">i</span> <span class="o">==</span> <span class="n">num_lines</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span>
<span class="c"># last line</span>
<span class="c1"># last line</span>
<span class="k">if</span> <span class="n">has_fragment</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_fragment</span> <span class="o">=</span> <span class="n">line</span>
<span class="k">continue</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">packets</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">line</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">error</span><span class="p">(</span><span class="s">&#39;invalid line for json encoding: </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">line</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="s1">&#39;invalid line for json encoding: </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">line</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">e</span>
<span class="k">return</span> <span class="n">packets</span></div>
</pre></div>
@ -362,7 +362,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.ansible.playbook &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,22 +47,22 @@
<div class="body">
<h1>Source code for kollacli.common.ansible.playbook</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</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">subprocess</span> <span class="c"># nosec</span>
<span class="kn">import</span> <span class="nn">subprocess</span> <span class="c1"># nosec</span>
<span class="kn">import</span> <span class="nn">traceback</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
@ -79,8 +79,8 @@
<div class="viewcode-block" id="AnsiblePlaybook"><a class="viewcode-back" href="../../../../kollacli.common.ansible.html#kollacli.common.ansible.playbook.AnsiblePlaybook">[docs]</a><span class="k">class</span> <span class="nc">AnsiblePlaybook</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
<span class="n">playbook_path</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">extra_vars</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">playbook_path</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">extra_vars</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">include_passwords</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">flush_cache</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">print_output</span> <span class="o">=</span> <span class="bp">True</span>
@ -98,7 +98,7 @@
<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>
<span class="c"># create and run the job</span>
<span class="c1"># create and run the job</span>
<span class="n">job</span> <span class="o">=</span> <span class="n">AnsibleJob</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">deploy_id</span><span class="p">,</span>
<span class="bp">self</span><span class="o">.</span><span class="n">print_output</span><span class="p">,</span> <span class="n">inventory_path</span><span class="p">)</span>
<span class="n">job</span><span class="o">.</span><span class="n">run</span><span class="p">()</span>
@ -108,46 +108,46 @@
<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>
</div>
<span class="k">def</span> <span class="nf">_get_playbook_cmd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">inventory_path</span><span class="p">):</span>
<span class="n">flag</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="c"># verbose levels: 1=not verbose, 2=more verbose</span>
<span class="n">flag</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="c1"># verbose levels: 1=not verbose, 2=more verbose</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
<span class="n">flag</span> <span class="o">=</span> <span class="s">&#39;-vvv&#39;</span>
<span class="n">flag</span> <span class="o">=</span> <span class="s1">&#39;-vvv&#39;</span>
<span class="n">ansible_cmd</span> <span class="o">=</span> <span class="n">get_ansible_command</span><span class="p">(</span><span class="n">playbook</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>
<span class="n">admin_user</span> <span class="o">=</span> <span class="n">get_admin_user</span><span class="p">()</span>
<span class="n">cmd</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"> </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">admin_user</span><span class="p">,</span> <span class="n">ansible_cmd</span><span class="p">,</span> <span class="n">flag</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;/usr/bin/sudo -u </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">admin_user</span><span class="p">,</span> <span class="n">ansible_cmd</span><span class="p">,</span> <span class="n">flag</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s">&#39; -i </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">inventory_path</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s1">&#39; -i </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">inventory_path</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">include_passwords</span><span class="p">:</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s">&#39; </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">_get_password_path</span><span class="p">()</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_password_path</span><span class="p">()</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s">&#39; </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">playbook_path</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="bp">self</span><span class="o">.</span><span class="n">playbook_path</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">extra_vars</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">serial</span><span class="p">:</span>
<span class="n">extra_vars</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">extra_vars</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">extra_vars</span><span class="p">:</span>
<span class="n">extra_vars</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">extra_vars</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">serial</span><span class="p">:</span>
<span class="n">extra_vars</span> <span class="o">+=</span> <span class="s">&#39; &#39;</span>
<span class="n">extra_vars</span> <span class="o">+=</span> <span class="s1">&#39; &#39;</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">serial</span><span class="p">:</span>
<span class="n">extra_vars</span> <span class="o">+=</span> <span class="s">&#39;serial_var=1&#39;</span>
<span class="n">extra_vars</span> <span class="o">+=</span> <span class="s1">&#39;serial_var=1&#39;</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s">&#39; --extra-vars </span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">extra_vars</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s1">&#39; --extra-vars </span><span class="se">\&quot;</span><span class="si">%s</span><span class="se">\&quot;</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">extra_vars</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">services</span><span class="p">:</span>
<span class="n">service_string</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">service_string</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">first</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">services</span><span class="p">:</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">first</span><span class="p">:</span>
<span class="n">service_string</span> <span class="o">=</span> <span class="n">service_string</span> <span class="o">+</span> <span class="s">&#39;,&#39;</span>
<span class="n">service_string</span> <span class="o">=</span> <span class="n">service_string</span> <span class="o">+</span> <span class="s1">&#39;,&#39;</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">first</span> <span class="o">=</span> <span class="bp">False</span>
<span class="n">service_string</span> <span class="o">=</span> <span class="n">service_string</span> <span class="o">+</span> <span class="n">service</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s">&#39; --tags </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">service_string</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s1">&#39; --tags </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">service_string</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">flush_cache</span><span class="p">:</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s">&#39; --flush-cache&#39;</span>
<span class="n">cmd</span> <span class="o">+=</span> <span class="s1">&#39; --flush-cache&#39;</span>
<span class="k">return</span> <span class="n">cmd</span>
<span class="k">def</span> <span class="nf">_make_temp_inventory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
@ -163,37 +163,37 @@
<span class="k">for</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">hosts</span><span class="p">:</span>
<span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">inventory</span><span class="o">.</span><span class="n">get_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Host&#39;</span><span class="p">),</span> <span class="n">hostname</span><span class="p">)</span>
<span class="n">inventory_filter</span><span class="p">[</span><span class="s">&#39;deploy_hosts&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">hosts</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">hostname</span><span class="p">)</span>
<span class="n">inventory_filter</span><span class="p">[</span><span class="s1">&#39;deploy_hosts&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">hosts</span>
<span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
<span class="k">for</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span><span class="p">:</span>
<span class="n">group</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">inventory</span><span class="o">.</span><span class="n">get_group</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">group</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="n">inventory_filter</span><span class="p">[</span><span class="s">&#39;deploy_groups&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="n">inventory_filter</span><span class="p">[</span><span class="s1">&#39;deploy_groups&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">groups</span>
<span class="n">inventory_path</span> <span class="o">=</span> \
<span class="bp">self</span><span class="o">.</span><span class="n">inventory</span><span class="o">.</span><span class="n">create_json_gen_file</span><span class="p">(</span><span class="n">inventory_filter</span><span class="p">)</span>
<span class="c"># inv path = /tmp/kolla_UUID/temp_inventory.py</span>
<span class="c1"># inv path = /tmp/kolla_UUID/temp_inventory.py</span>
<span class="n">deploy_id</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">dirname</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">deploy_id</span> <span class="o">=</span> <span class="n">deploy_id</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;kolla_&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">deploy_id</span> <span class="o">=</span> <span class="n">deploy_id</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;kolla_&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
<span class="k">return</span> <span class="n">inventory_path</span>
<span class="k">def</span> <span class="nf">_get_password_path</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">kolla_etc</span> <span class="o">=</span> <span class="n">get_kolla_etc</span><span class="p">()</span>
<span class="k">return</span> <span class="p">(</span><span class="s">&#39;-e @&#39;</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">kolla_etc</span><span class="p">,</span> <span class="s">&#39;passwords.yml &#39;</span><span class="p">))</span>
<span class="k">return</span> <span class="p">(</span><span class="s1">&#39;-e @&#39;</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">kolla_etc</span><span class="p">,</span> <span class="s1">&#39;passwords.yml &#39;</span><span class="p">))</span>
<span class="k">def</span> <span class="nf">_log_ansible_cmd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cmd</span><span class="p">,</span> <span class="n">inventory_path</span><span class="p">):</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">2</span><span class="p">:</span>
<span class="c"># log the ansible command</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s">&#39;cmd:&#39;</span> <span class="o">+</span> <span class="n">cmd</span><span class="p">)</span>
<span class="c1"># log the ansible command</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">debug</span><span class="p">(</span><span class="s1">&#39;cmd:&#39;</span> <span class="o">+</span> <span class="n">cmd</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">verbose_level</span> <span class="o">&gt;</span> <span class="mi">3</span><span class="p">:</span>
<span class="c"># log the inventory</span>
<span class="c1"># log the inventory</span>
<span class="n">dbg_gen</span> <span class="o">=</span> <span class="n">inventory_path</span>
<span class="p">(</span><span class="n">inv</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">=</span> \
<span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">dbg_gen</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39; &#39;</span><span class="p">),</span> <span class="c"># nosec</span>
<span class="n">subprocess</span><span class="o">.</span><span class="n">Popen</span><span class="p">(</span><span class="n">dbg_gen</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">),</span> <span class="c1"># nosec</span>
<span class="n">stdout</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="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="o">.</span><span class="n">communicate</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="n">inv</span><span class="p">)</span></div>
@ -230,7 +230,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.inventory &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.common.inventory</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">json</span>
<span class="kn">import</span> <span class="nn">jsonpickle</span>
<span class="kn">import</span> <span class="nn">logging</span>
@ -86,17 +86,17 @@
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">sync_read_file</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">sync_write_file</span>
<span class="n">ANSIBLE_SSH_USER</span> <span class="o">=</span> <span class="s">&#39;ansible_ssh_user&#39;</span>
<span class="n">ANSIBLE_CONNECTION</span> <span class="o">=</span> <span class="s">&#39;ansible_connection&#39;</span>
<span class="n">ANSIBLE_BECOME</span> <span class="o">=</span> <span class="s">&#39;ansible_become&#39;</span>
<span class="n">ANSIBLE_SSH_USER</span> <span class="o">=</span> <span class="s1">&#39;ansible_ssh_user&#39;</span>
<span class="n">ANSIBLE_CONNECTION</span> <span class="o">=</span> <span class="s1">&#39;ansible_connection&#39;</span>
<span class="n">ANSIBLE_BECOME</span> <span class="o">=</span> <span class="s1">&#39;ansible_become&#39;</span>
<span class="n">INVENTORY_PATH</span> <span class="o">=</span> <span class="s">&#39;ansible/inventory.json&#39;</span>
<span class="n">INVENTORY_PATH</span> <span class="o">=</span> <span class="s1">&#39;ansible/inventory.json&#39;</span>
<span class="n">COMPUTE_GRP_NAME</span> <span class="o">=</span> <span class="s">&#39;compute&#39;</span>
<span class="n">CONTROL_GRP_NAME</span> <span class="o">=</span> <span class="s">&#39;control&#39;</span>
<span class="n">NETWORK_GRP_NAME</span> <span class="o">=</span> <span class="s">&#39;network&#39;</span>
<span class="n">STORAGE_GRP_NAME</span> <span class="o">=</span> <span class="s">&#39;storage&#39;</span>
<span class="n">DATABASE_GRP_NAME</span> <span class="o">=</span> <span class="s">&#39;database&#39;</span>
<span class="n">COMPUTE_GRP_NAME</span> <span class="o">=</span> <span class="s1">&#39;compute&#39;</span>
<span class="n">CONTROL_GRP_NAME</span> <span class="o">=</span> <span class="s1">&#39;control&#39;</span>
<span class="n">NETWORK_GRP_NAME</span> <span class="o">=</span> <span class="s1">&#39;network&#39;</span>
<span class="n">STORAGE_GRP_NAME</span> <span class="o">=</span> <span class="s1">&#39;storage&#39;</span>
<span class="n">DATABASE_GRP_NAME</span> <span class="o">=</span> <span class="s1">&#39;database&#39;</span>
<span class="n">DEPLOY_GROUPS</span> <span class="o">=</span> <span class="p">[</span>
<span class="n">COMPUTE_GRP_NAME</span><span class="p">,</span>
@ -107,57 +107,57 @@
<span class="p">]</span>
<span class="n">SERVICES</span> <span class="o">=</span> <span class="p">{</span>
<span class="s">&#39;ceilometer&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;ceilometer-alarm-evaluator&#39;</span><span class="p">,</span> <span class="s">&#39;ceilometer-alarm-notifier&#39;</span><span class="p">,</span>
<span class="s">&#39;ceilometer-api&#39;</span><span class="p">,</span> <span class="s">&#39;ceilometer-central&#39;</span><span class="p">,</span>
<span class="s">&#39;ceilometer-collector&#39;</span><span class="p">,</span> <span class="s">&#39;ceilometer-notification&#39;</span><span class="p">],</span>
<span class="s">&#39;cinder&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;cinder-api&#39;</span><span class="p">,</span> <span class="s">&#39;cinder-scheduler&#39;</span><span class="p">,</span> <span class="s">&#39;cinder-backup&#39;</span><span class="p">,</span>
<span class="s">&#39;cinder-volume&#39;</span><span class="p">],</span>
<span class="s">&#39;glance&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;glance-api&#39;</span><span class="p">,</span> <span class="s">&#39;glance-registry&#39;</span><span class="p">],</span>
<span class="s">&#39;haproxy&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s">&#39;heat&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;heat-api&#39;</span><span class="p">,</span> <span class="s">&#39;heat-api-cfn&#39;</span><span class="p">,</span> <span class="s">&#39;heat-engine&#39;</span><span class="p">],</span>
<span class="s">&#39;horizon&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s">&#39;keystone&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s">&#39;memcached&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s">&#39;murano&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;murano-api&#39;</span><span class="p">,</span> <span class="s">&#39;murano-engine&#39;</span><span class="p">],</span>
<span class="s">&#39;mysqlcluster&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;mysqlcluster-api&#39;</span><span class="p">,</span> <span class="s">&#39;mysqlcluster-mgmt&#39;</span><span class="p">,</span>
<span class="s">&#39;mysqlcluster-ndb&#39;</span><span class="p">],</span>
<span class="s">&#39;neutron&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;neutron-server&#39;</span><span class="p">,</span> <span class="s">&#39;neutron-agents&#39;</span><span class="p">],</span>
<span class="s">&#39;nova&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;nova-api&#39;</span><span class="p">,</span> <span class="s">&#39;nova-conductor&#39;</span><span class="p">,</span> <span class="s">&#39;nova-consoleauth&#39;</span><span class="p">,</span>
<span class="s">&#39;nova-novncproxy&#39;</span><span class="p">,</span> <span class="s">&#39;nova-scheduler&#39;</span><span class="p">],</span>
<span class="s">&#39;rabbitmq&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s">&#39;swift&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s">&#39;swift-proxy-server&#39;</span><span class="p">,</span> <span class="s">&#39;swift-account-server&#39;</span><span class="p">,</span>
<span class="s">&#39;swift-container-server&#39;</span><span class="p">,</span> <span class="s">&#39;swift-object-server&#39;</span><span class="p">],</span>
<span class="s1">&#39;ceilometer&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;ceilometer-alarm-evaluator&#39;</span><span class="p">,</span> <span class="s1">&#39;ceilometer-alarm-notifier&#39;</span><span class="p">,</span>
<span class="s1">&#39;ceilometer-api&#39;</span><span class="p">,</span> <span class="s1">&#39;ceilometer-central&#39;</span><span class="p">,</span>
<span class="s1">&#39;ceilometer-collector&#39;</span><span class="p">,</span> <span class="s1">&#39;ceilometer-notification&#39;</span><span class="p">],</span>
<span class="s1">&#39;cinder&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;cinder-api&#39;</span><span class="p">,</span> <span class="s1">&#39;cinder-scheduler&#39;</span><span class="p">,</span> <span class="s1">&#39;cinder-backup&#39;</span><span class="p">,</span>
<span class="s1">&#39;cinder-volume&#39;</span><span class="p">],</span>
<span class="s1">&#39;glance&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;glance-api&#39;</span><span class="p">,</span> <span class="s1">&#39;glance-registry&#39;</span><span class="p">],</span>
<span class="s1">&#39;haproxy&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s1">&#39;heat&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;heat-api&#39;</span><span class="p">,</span> <span class="s1">&#39;heat-api-cfn&#39;</span><span class="p">,</span> <span class="s1">&#39;heat-engine&#39;</span><span class="p">],</span>
<span class="s1">&#39;horizon&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s1">&#39;keystone&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s1">&#39;memcached&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s1">&#39;murano&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;murano-api&#39;</span><span class="p">,</span> <span class="s1">&#39;murano-engine&#39;</span><span class="p">],</span>
<span class="s1">&#39;mysqlcluster&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;mysqlcluster-api&#39;</span><span class="p">,</span> <span class="s1">&#39;mysqlcluster-mgmt&#39;</span><span class="p">,</span>
<span class="s1">&#39;mysqlcluster-ndb&#39;</span><span class="p">],</span>
<span class="s1">&#39;neutron&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;neutron-server&#39;</span><span class="p">,</span> <span class="s1">&#39;neutron-agents&#39;</span><span class="p">],</span>
<span class="s1">&#39;nova&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;nova-api&#39;</span><span class="p">,</span> <span class="s1">&#39;nova-conductor&#39;</span><span class="p">,</span> <span class="s1">&#39;nova-consoleauth&#39;</span><span class="p">,</span>
<span class="s1">&#39;nova-novncproxy&#39;</span><span class="p">,</span> <span class="s1">&#39;nova-scheduler&#39;</span><span class="p">],</span>
<span class="s1">&#39;rabbitmq&#39;</span><span class="p">:</span> <span class="p">[],</span>
<span class="s1">&#39;swift&#39;</span><span class="p">:</span> <span class="p">[</span><span class="s1">&#39;swift-proxy-server&#39;</span><span class="p">,</span> <span class="s1">&#39;swift-account-server&#39;</span><span class="p">,</span>
<span class="s1">&#39;swift-container-server&#39;</span><span class="p">,</span> <span class="s1">&#39;swift-object-server&#39;</span><span class="p">],</span>
<span class="p">}</span>
<span class="n">DEFAULT_GROUPS</span> <span class="o">=</span> <span class="p">{</span>
<span class="s">&#39;ceilometer&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;cinder&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;glance&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;haproxy&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;heat&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;horizon&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;keystone&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;memcached&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;murano&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;mysqlcluster&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;neutron&#39;</span><span class="p">:</span> <span class="n">NETWORK_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;nova&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;rabbitmq&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;swift&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;ceilometer&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;cinder&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;glance&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;haproxy&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;heat&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;horizon&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;keystone&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;memcached&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;murano&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;mysqlcluster&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;neutron&#39;</span><span class="p">:</span> <span class="n">NETWORK_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;nova&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;rabbitmq&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;swift&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="p">}</span>
<span class="n">DEFAULT_OVERRIDES</span> <span class="o">=</span> <span class="p">{</span>
<span class="s">&#39;cinder-backup&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;cinder-volume&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;mysqlcluster-ndb&#39;</span><span class="p">:</span> <span class="n">DATABASE_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;neutron-server&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;swift-account-server&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;swift-container-server&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s">&#39;swift-object-server&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;cinder-backup&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;cinder-volume&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;mysqlcluster-ndb&#39;</span><span class="p">:</span> <span class="n">DATABASE_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;neutron-server&#39;</span><span class="p">:</span> <span class="n">CONTROL_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;swift-account-server&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;swift-container-server&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="s1">&#39;swift-object-server&#39;</span><span class="p">:</span> <span class="n">STORAGE_GRP_NAME</span><span class="p">,</span>
<span class="p">}</span>
<span class="c"># these groups cannot be deleted, they are required by kolla</span>
<span class="c1"># these groups cannot be deleted, they are required by kolla</span>
<span class="n">PROTECTED_GROUPS</span> <span class="o">=</span> <span class="p">[</span><span class="n">COMPUTE_GRP_NAME</span><span class="p">]</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>
@ -178,9 +178,9 @@
<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">hostname</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">hostname</span>
<span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">alias</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">is_mgmt</span> <span class="o">=</span> <span class="bp">False</span>
<span class="bp">self</span><span class="o">.</span><span class="n">hypervisor</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">hypervisor</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="o">=</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">version</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">class_version</span>
@ -228,14 +228,14 @@
<span class="k">del</span> <span class="bp">self</span><span class="o">.</span><span class="n">vars</span><span class="p">[</span><span class="n">name</span><span class="p">]</span>
</div>
<div class="viewcode-block" id="HostGroup.set_remote"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.HostGroup.set_remote">[docs]</a> <span class="k">def</span> <span class="nf">set_remote</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">remote_flag</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">set_var</span><span class="p">(</span><span class="n">ANSIBLE_BECOME</span><span class="p">,</span> <span class="s">&#39;yes&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">set_var</span><span class="p">(</span><span class="n">ANSIBLE_BECOME</span><span class="p">,</span> <span class="s1">&#39;yes&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">remote_flag</span><span class="p">:</span>
<span class="c"># set the ssh info for all the servers in the group</span>
<span class="c1"># set the ssh info for all the servers in the group</span>
<span class="bp">self</span><span class="o">.</span><span class="n">set_var</span><span class="p">(</span><span class="n">ANSIBLE_SSH_USER</span><span class="p">,</span> <span class="n">get_admin_user</span><span class="p">())</span>
<span class="bp">self</span><span class="o">.</span><span class="n">clear_var</span><span class="p">(</span><span class="n">ANSIBLE_CONNECTION</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="c"># remove ssh info, add local connection type</span>
<span class="bp">self</span><span class="o">.</span><span class="n">set_var</span><span class="p">(</span><span class="n">ANSIBLE_CONNECTION</span><span class="p">,</span> <span class="s">&#39;local&#39;</span><span class="p">)</span>
<span class="c1"># remove ssh info, add local connection type</span>
<span class="bp">self</span><span class="o">.</span><span class="n">set_var</span><span class="p">(</span><span class="n">ANSIBLE_CONNECTION</span><span class="p">,</span> <span class="s1">&#39;local&#39;</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">clear_var</span><span class="p">(</span><span class="n">ANSIBLE_SSH_USER</span><span class="p">)</span>
</div></div>
@ -280,7 +280,7 @@
<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="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
<span class="c"># groups and parent services are mutually exclusive</span>
<span class="c1"># groups and parent services are mutually exclusive</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_parent_servicename</span> <span class="o">=</span> <span class="bp">None</span>
@ -298,7 +298,7 @@
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span><span class="o">.</span><span class="n">remove</span><span class="p">(</span><span class="n">groupname</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">_groupnames</span><span class="p">:</span>
<span class="c"># no groups left, re-associate to the parent</span>
<span class="c1"># no groups left, re-associate to the parent</span>
<span class="k">for</span> <span class="n">servicename</span> <span class="ow">in</span> <span class="n">SERVICES</span><span class="p">:</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">SERVICES</span><span class="p">[</span><span class="n">servicename</span><span class="p">]:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">set_parent_servicename</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
@ -309,7 +309,6 @@
</div>
<div class="viewcode-block" id="SubService.set_parent_servicename"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.SubService.set_parent_servicename">[docs]</a> <span class="k">def</span> <span class="nf">set_parent_servicename</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parent_svc_name</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_parent_servicename</span> <span class="o">=</span> <span class="n">parent_svc_name</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groupnames</span> <span class="o">=</span> <span class="p">[]</span>
</div>
<div class="viewcode-block" id="SubService.get_parent_servicename"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.SubService.get_parent_servicename">[docs]</a> <span class="k">def</span> <span class="nf">get_parent_servicename</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parent_servicename</span>
@ -326,49 +325,50 @@
<span class="sd"> 1: initial release</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="bp">self</span><span class="o">.</span><span class="n">_groups</span> <span class="o">=</span> <span class="p">{}</span> <span class="c"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span> <span class="o">=</span> <span class="p">{}</span> <span class="c"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_services</span> <span class="o">=</span> <span class="p">{}</span> <span class="c"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_sub_services</span> <span class="o">=</span> <span class="p">{}</span> <span class="c"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groups</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_services</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_sub_services</span> <span class="o">=</span> <span class="p">{}</span> <span class="c1"># kv = name:object</span>
<span class="bp">self</span><span class="o">.</span><span class="n">vars</span> <span class="o">=</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">version</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">class_version</span>
<span class="bp">self</span><span class="o">.</span><span class="n">remote_mode</span> <span class="o">=</span> <span class="bp">True</span>
<span class="c"># initialize the inventory to its defaults</span>
<span class="c1"># initialize the inventory to its defaults</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_create_default_inventory</span><span class="p">()</span>
<div class="viewcode-block" id="Inventory.upgrade"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.upgrade">[docs]</a> <span class="k">def</span> <span class="nf">upgrade</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">version</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
<span class="c"># upgrade from inventory v1</span>
<span class="c1"># upgrade from inventory v1</span>
<span class="c"># add ceilometer to inventory</span>
<span class="n">svc_name</span> <span class="o">=</span> <span class="s">&#39;ceilometer&#39;</span>
<span class="c1"># add ceilometer to inventory</span>
<span class="n">svc_name</span> <span class="o">=</span> <span class="s1">&#39;ceilometer&#39;</span>
<span class="n">svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_service</span><span class="p">(</span><span class="n">svc_name</span><span class="p">)</span>
<span class="c"># associate ceilometer with all groups that heat is in.</span>
<span class="n">clone_svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_service</span><span class="p">(</span><span class="s">&#39;heat&#39;</span><span class="p">)</span>
<span class="c1"># associate ceilometer with all groups that heat is in.</span>
<span class="n">clone_svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_service</span><span class="p">(</span><span class="s1">&#39;heat&#39;</span><span class="p">)</span>
<span class="n">groups</span> <span class="o">=</span> <span class="n">clone_svc</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">()</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">svc</span><span class="o">.</span><span class="n">add_groupname</span><span class="p">(</span><span class="n">group</span><span class="p">)</span>
<span class="c"># stitch sub-service to service and set override</span>
<span class="c"># groups</span>
<span class="c1"># stitch sub-service to service and set override</span>
<span class="c1"># groups</span>
<span class="k">for</span> <span class="n">sub_svc_name</span> <span class="ow">in</span> <span class="n">SERVICES</span><span class="p">[</span><span class="n">svc_name</span><span class="p">]:</span>
<span class="n">sub_svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_sub_service</span><span class="p">(</span><span class="n">sub_svc_name</span><span class="p">)</span>
<span class="n">sub_svc</span><span class="o">.</span><span class="n">set_parent_servicename</span><span class="p">(</span><span class="n">svc_name</span><span class="p">)</span>
<span class="n">svc</span><span class="o">.</span><span class="n">add_sub_servicename</span><span class="p">(</span><span class="n">sub_svc_name</span><span class="p">)</span>
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">version</span> <span class="o">&lt;=</span> <span class="mi">2</span><span class="p">:</span>
<span class="c"># upgrade from inventory v2</span>
<span class="c1"># upgrade from inventory v2</span>
<span class="c"># some sub-services may be missing their parent associations.</span>
<span class="c"># they are now needed in v3.</span>
<span class="c1"># some sub-services may be missing their parent associations.</span>
<span class="c1"># they are now needed in v3.</span>
<span class="k">for</span> <span class="n">svc</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_services</span><span class="p">():</span>
<span class="k">for</span> <span class="n">sub_svcname</span> <span class="ow">in</span> <span class="n">svc</span><span class="o">.</span><span class="n">get_subservicenames</span><span class="p">():</span>
<span class="k">for</span> <span class="n">sub_svcname</span> <span class="ow">in</span> <span class="n">svc</span><span class="o">.</span><span class="n">get_sub_servicenames</span><span class="p">():</span>
<span class="n">sub_svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_sub_service</span><span class="p">(</span><span class="n">sub_svcname</span><span class="p">)</span>
<span class="n">sub_svc</span><span class="o">.</span><span class="n">set_parent_servicename</span><span class="p">(</span><span class="n">svc</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">sub_svc</span><span class="o">.</span><span class="n">get_parent_servicename</span><span class="p">():</span>
<span class="n">sub_svc</span><span class="o">.</span><span class="n">set_parent_servicename</span><span class="p">(</span><span class="n">svc</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
<span class="c"># update the version and save upgraded inventory file</span>
<span class="c1"># update the version and save upgraded inventory file</span>
<span class="bp">self</span><span class="o">.</span><span class="n">version</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">__class__</span><span class="o">.</span><span class="n">class_version</span>
<span class="n">Inventory</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
</div>
@ -376,30 +376,30 @@
<div class="viewcode-block" id="Inventory.load"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.load">[docs]</a> <span class="k">def</span> <span class="nf">load</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;load the inventory from a pickle file&quot;&quot;&quot;</span>
<span class="n">inventory_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_kollacli_etc</span><span class="p">(),</span> <span class="n">INVENTORY_PATH</span><span class="p">)</span>
<span class="n">data</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">data</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">inventory_path</span><span class="p">):</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">sync_read_file</span><span class="p">(</span><span class="n">inventory_path</span><span class="p">)</span>
<span class="c"># The inventory path changed between v1 and v2. Need to change</span>
<span class="c"># path throughout the inventory. This has to be done before</span>
<span class="c"># the pickle decode.</span>
<span class="k">if</span> <span class="s">&#39;kollacli.common.inventory&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
<span class="c1"># The inventory path changed between v1 and v2. Need to change</span>
<span class="c1"># path throughout the inventory. This has to be done before</span>
<span class="c1"># the pickle decode.</span>
<span class="k">if</span> <span class="s1">&#39;kollacli.common.inventory&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">data</span><span class="p">:</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span>
<span class="s">&#39;&quot;py/object&quot;: &quot;kollacli.ansible.inventory.&#39;</span><span class="p">,</span>
<span class="s">&#39;&quot;py/object&quot;: &quot;kollacli.common.inventory.&#39;</span><span class="p">)</span>
<span class="s1">&#39;&quot;py/object&quot;: &quot;kollacli.ansible.inventory.&#39;</span><span class="p">,</span>
<span class="s1">&#39;&quot;py/object&quot;: &quot;kollacli.common.inventory.&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">data</span><span class="o">.</span><span class="n">strip</span><span class="p">():</span>
<span class="n">inventory</span> <span class="o">=</span> <span class="n">jsonpickle</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="c"># upgrade version handling</span>
<span class="c1"># upgrade version handling</span>
<span class="k">if</span> <span class="n">inventory</span><span class="o">.</span><span class="n">version</span> <span class="o">!=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">class_version</span><span class="p">:</span>
<span class="n">inventory</span><span class="o">.</span><span class="n">upgrade</span><span class="p">()</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">inventory</span> <span class="o">=</span> <span class="n">Inventory</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">FailedOperation</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;Loading inventory failed. : {error}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Loading inventory failed. : {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="n">traceback</span><span class="o">.</span><span class="n">format_exc</span><span class="p">()))</span>
<span class="k">return</span> <span class="n">inventory</span>
</div>
@ -408,7 +408,7 @@
<span class="sd">&quot;&quot;&quot;Save the inventory in a pickle file&quot;&quot;&quot;</span>
<span class="n">inventory_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_kollacli_etc</span><span class="p">(),</span> <span class="n">INVENTORY_PATH</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="c"># multiple trips thru json to render a readable inventory file</span>
<span class="c1"># multiple trips thru json to render a readable inventory file</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">jsonpickle</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="n">inventory</span><span class="p">)</span>
<span class="n">data_str</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">loads</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="n">pretty_data</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">data_str</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="mi">4</span><span class="p">)</span>
@ -416,16 +416,16 @@
<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">FailedOperation</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;Saving inventory failed. : {error}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Saving inventory failed. : {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>
</div>
<span class="k">def</span> <span class="nf">_create_default_inventory</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="c"># create the default groups</span>
<span class="c1"># create the default groups</span>
<span class="k">for</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="n">DEPLOY_GROUPS</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">add_group</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="c"># create the default services/sub_services &amp; their default groups</span>
<span class="c1"># create the default services/sub_services &amp; their default groups</span>
<span class="k">for</span> <span class="n">svcname</span> <span class="ow">in</span> <span class="n">SERVICES</span><span class="p">:</span>
<span class="n">svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_service</span><span class="p">(</span><span class="n">svcname</span><span class="p">)</span>
<span class="n">default_grpname</span> <span class="o">=</span> <span class="n">DEFAULT_GROUPS</span><span class="p">[</span><span class="n">svcname</span><span class="p">]</span>
@ -433,7 +433,7 @@
<span class="n">sub_svcnames</span> <span class="o">=</span> <span class="n">SERVICES</span><span class="p">[</span><span class="n">svcname</span><span class="p">]</span>
<span class="k">if</span> <span class="n">sub_svcnames</span><span class="p">:</span>
<span class="k">for</span> <span class="n">sub_svcname</span> <span class="ow">in</span> <span class="n">sub_svcnames</span><span class="p">:</span>
<span class="c"># create a subservice</span>
<span class="c1"># create a subservice</span>
<span class="n">svc</span><span class="o">.</span><span class="n">add_sub_servicename</span><span class="p">(</span><span class="n">sub_svcname</span><span class="p">)</span>
<span class="n">sub_svc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_sub_service</span><span class="p">(</span><span class="n">sub_svcname</span><span class="p">)</span>
<span class="n">sub_svc</span><span class="o">.</span><span class="n">set_parent_servicename</span><span class="p">(</span><span class="n">svc</span><span class="o">.</span><span class="n">name</span><span class="p">)</span>
@ -459,26 +459,26 @@
<span class="sd"> if group name is not none, add host to group</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">and</span> <span class="n">groupname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">and</span> <span class="n">hostname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
<span class="c"># if a groupname is specified, the host must already exist</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Host&#39;</span><span class="p">),</span> <span class="n">hostname</span><span class="p">)</span>
<span class="c1"># if a groupname is specified, the host must already exist</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">groupname</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">remote_mode</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">)</span> <span class="o">&gt;=</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidConfiguration</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;Cannot have more than one host when in local deploy &#39;</span>
<span class="s">&#39;mode.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Cannot have more than one host when in local deploy &#39;</span>
<span class="s1">&#39;mode.&#39;</span><span class="p">))</span>
<span class="n">changed</span> <span class="o">=</span> <span class="bp">False</span>
<span class="c"># create new host if it doesn&#39;t exist</span>
<span class="c1"># create new host if it doesn&#39;t exist</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">Host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_hostnames</span><span class="p">():</span>
<span class="c"># a new host is being added to the inventory</span>
<span class="c1"># a new host is being added to the inventory</span>
<span class="n">changed</span> <span class="o">=</span> <span class="bp">True</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">host</span>
<span class="c"># a host is to be added to an existing group</span>
<span class="c1"># a host is to be added to an existing group</span>
<span class="k">elif</span> <span class="n">groupname</span><span class="p">:</span>
<span class="n">group</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">[</span><span class="n">groupname</span><span class="p">]</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">group</span><span class="o">.</span><span class="n">get_hostnames</span><span class="p">():</span>
@ -500,7 +500,7 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">changed</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">and</span> <span class="n">groupname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
<span class="k">return</span> <span class="n">changed</span>
@ -535,44 +535,44 @@
<span class="k">for</span> <span class="n">hostname</span><span class="p">,</span> <span class="n">host_info</span> <span class="ow">in</span> <span class="n">hosts_info</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span>
<span class="n">failed_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&quot;Host doesn&#39;t exist.&quot;</span><span class="p">)</span>
<span class="n">failed_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s2">&quot;Host doesn&#39;t exist.&quot;</span><span class="p">)</span>
<span class="k">continue</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host_info</span> <span class="ow">or</span> <span class="s">&#39;password&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">host_info</span><span class="p">:</span>
<span class="n">failed_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;No password in yml file.&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">host_info</span> <span class="ow">or</span> <span class="s1">&#39;password&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">host_info</span><span class="p">:</span>
<span class="n">failed_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;No password in yml file.&#39;</span><span class="p">)</span>
<span class="k">continue</span>
<span class="n">passwd</span> <span class="o">=</span> <span class="n">host_info</span><span class="p">[</span><span class="s">&#39;password&#39;</span><span class="p">]</span>
<span class="n">passwd</span> <span class="o">=</span> <span class="n">host_info</span><span class="p">[</span><span class="s1">&#39;password&#39;</span><span class="p">]</span>
<span class="n">uname</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">if</span> <span class="s">&#39;uname&#39;</span> <span class="ow">in</span> <span class="n">host_info</span><span class="p">:</span>
<span class="n">uname</span> <span class="o">=</span> <span class="n">host_info</span><span class="p">[</span><span class="s">&#39;uname&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="s1">&#39;uname&#39;</span> <span class="ow">in</span> <span class="n">host_info</span><span class="p">:</span>
<span class="n">uname</span> <span class="o">=</span> <span class="n">host_info</span><span class="p">[</span><span class="s1">&#39;uname&#39;</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">setup_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="n">passwd</span><span class="p">,</span> <span class="n">uname</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">failed_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">e</span>
<span class="n">failed_hosts</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">e</span>
<span class="k">if</span> <span class="n">failed_hosts</span><span class="p">:</span>
<span class="n">summary</span> <span class="o">=</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span>
<span class="n">summary</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="k">for</span> <span class="n">hostname</span><span class="p">,</span> <span class="n">err</span> <span class="ow">in</span> <span class="n">failed_hosts</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">summary</span> <span class="o">=</span> <span class="n">summary</span> <span class="o">+</span> <span class="s">&#39;- </span><span class="si">%s</span><span class="s">: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="n">err</span><span class="p">)</span>
<span class="n">summary</span> <span class="o">=</span> <span class="n">summary</span> <span class="o">+</span> <span class="s1">&#39;- </span><span class="si">%s</span><span class="s1">: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="n">err</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">HostError</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;Not all hosts were set up. : {reasons}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Not all hosts were set up. : {reasons}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">reasons</span><span class="o">=</span><span class="n">summary</span><span class="p">))</span>
<span class="k">else</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s">&#39;All hosts were successfully set up.&#39;</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s1">&#39;All hosts were successfully set up.&#39;</span><span class="p">))</span>
</div>
<div class="viewcode-block" id="Inventory.setup_host"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.setup_host">[docs]</a> <span class="k">def</span> <span class="nf">setup_host</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hostname</span><span class="p">,</span> <span class="n">password</span><span class="p">,</span> <span class="n">uname</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="k">try</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s">&#39;Starting setup of host ({host}).&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s1">&#39;Starting setup of host ({host}).&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">))</span>
<span class="n">ssh_setup_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="n">password</span><span class="p">,</span> <span class="n">uname</span><span class="p">)</span>
<span class="n">check_ok</span><span class="p">,</span> <span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssh_check_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">check_ok</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;Post-setup ssh check failed. {err}&#39;</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="s1">&#39;Post-setup ssh check failed. {err}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">err</span><span class="o">=</span><span class="n">msg</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s">&#39;Host ({host}) setup succeeded.&#39;</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="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s1">&#39;Host ({host}) setup succeeded.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</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">HostError</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;Host ({host}) setup failed : {error}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host ({host}) setup failed : {error}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</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="k">return</span> <span class="bp">True</span>
</div>
@ -586,25 +586,25 @@
<span class="k">for</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="n">is_ok</span><span class="p">,</span> <span class="n">msg</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ssh_check_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">][</span><span class="s">&#39;success&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">is_ok</span>
<span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">][</span><span class="s">&#39;msg&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">msg</span>
<span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">][</span><span class="s1">&#39;success&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">is_ok</span>
<span class="n">summary</span><span class="p">[</span><span class="n">hostname</span><span class="p">][</span><span class="s1">&#39;msg&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">msg</span>
<span class="k">return</span> <span class="n">summary</span>
</div>
<div class="viewcode-block" id="Inventory.ssh_check_host"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.ssh_check_host">[docs]</a> <span class="k">def</span> <span class="nf">ssh_check_host</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hostname</span><span class="p">):</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">command_string</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"> -vvv &#39;</span> <span class="o">%</span> \
<span class="n">command_string</span> <span class="o">=</span> <span class="s1">&#39;/usr/bin/sudo -u </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1"> -vvv &#39;</span> <span class="o">%</span> \
<span class="p">(</span><span class="n">get_admin_user</span><span class="p">(),</span> <span class="n">get_ansible_command</span><span class="p">())</span>
<span class="n">gen_file_path</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_json_gen_file</span><span class="p">()</span>
<span class="n">is_ok</span> <span class="o">=</span> <span class="bp">True</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">inventory_string</span> <span class="o">=</span> <span class="s">&#39;-i &#39;</span> <span class="o">+</span> <span class="n">gen_file_path</span>
<span class="n">ping_string</span> <span class="o">=</span> <span class="s">&#39; </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">hostname</span><span class="p">,</span> <span class="s">&#39;-m ping&#39;</span><span class="p">)</span>
<span class="n">inventory_string</span> <span class="o">=</span> <span class="s1">&#39;-i &#39;</span> <span class="o">+</span> <span class="n">gen_file_path</span>
<span class="n">ping_string</span> <span class="o">=</span> <span class="s1">&#39; </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">hostname</span><span class="p">,</span> <span class="s1">&#39;-m ping&#39;</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="n">command_string</span> <span class="o">+</span> <span class="n">inventory_string</span> <span class="o">+</span> <span class="n">ping_string</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="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="n">is_ok</span> <span class="o">=</span> <span class="bp">False</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;Host: ({host}) setup exception. : {error}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host: ({host}) setup exception. : {error}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</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="k">finally</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">remove_json_gen_file</span><span class="p">(</span><span class="n">gen_file_path</span><span class="p">)</span>
@ -612,20 +612,20 @@
<span class="k">if</span> <span class="n">err_msg</span><span class="p">:</span>
<span class="n">is_ok</span> <span class="o">=</span> <span class="bp">False</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;Host ({host}) ssh check failed. : {error} {message}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host ({host}) ssh check failed. : {error} {message}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">,</span> <span class="n">error</span><span class="o">=</span><span class="n">err_msg</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">output</span><span class="p">))</span>
<span class="k">else</span><span class="p">:</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">_LI</span><span class="p">(</span><span class="s">&#39;Host ({host}) ssh check succeeded.&#39;</span><span class="p">)</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">_LI</span><span class="p">(</span><span class="s1">&#39;Host ({host}) ssh check succeeded.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">hostname</span><span class="p">))</span>
<span class="k">return</span> <span class="n">is_ok</span><span class="p">,</span> <span class="n">msg</span>
</div>
<div class="viewcode-block" id="Inventory.add_group"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.add_group">[docs]</a> <span class="k">def</span> <span class="nf">add_group</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupname</span><span class="p">):</span>
<span class="c"># Group names cannot overlap with service names:</span>
<span class="c1"># Group names cannot overlap with service names:</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_services</span> <span class="ow">or</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sub_services</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidArgument</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 group name. A service name &#39;</span>
<span class="s">&#39;cannot be used for a group name.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Invalid group name. A service name &#39;</span>
<span class="s1">&#39;cannot be used for a group name.&#39;</span><span class="p">))</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
<span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">[</span><span class="n">groupname</span><span class="p">]</span> <span class="o">=</span> <span class="n">HostGroup</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
@ -639,10 +639,10 @@
<div class="viewcode-block" id="Inventory.remove_group"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.remove_group">[docs]</a> <span class="k">def</span> <span class="nf">remove_group</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupname</span><span class="p">):</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="n">PROTECTED_GROUPS</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidArgument</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;Cannot remove {group} group. It is required by kolla.&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Cannot remove {group} group. It is required by kolla.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">group</span><span class="o">=</span><span class="n">groupname</span><span class="p">))</span>
<span class="c"># remove group from services &amp; subservices</span>
<span class="c1"># remove group from services &amp; subservices</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_services</span><span class="o">.</span><span class="n">values</span><span class="p">():</span>
<span class="n">service</span><span class="o">.</span><span class="n">remove_groupname</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
@ -650,7 +650,7 @@
<span class="n">subservice</span><span class="o">.</span><span class="n">remove_groupname</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="n">group_vars</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">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">group_vars</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupname</span> <span class="o">!=</span> <span class="s">&#39;__GLOBAL__&#39;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">group_vars</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupname</span> <span class="o">!=</span> <span class="s1">&#39;__GLOBAL__&#39;</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="n">group_vars</span><span class="p">)</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
@ -740,7 +740,7 @@
</div>
<div class="viewcode-block" id="Inventory.add_group_to_service"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.add_group_to_service">[docs]</a> <span class="k">def</span> <span class="nf">add_group_to_service</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupname</span><span class="p">,</span> <span class="n">servicename</span><span class="p">):</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">servicename</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_services</span><span class="p">:</span>
<span class="n">service</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="n">service</span><span class="o">.</span><span class="n">add_groupname</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
@ -748,11 +748,11 @@
<span class="n">sub_service</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_sub_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="n">sub_service</span><span class="o">.</span><span class="n">add_groupname</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Service&#39;</span><span class="p">),</span> <span class="n">servicename</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service&#39;</span><span class="p">),</span> <span class="n">servicename</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="Inventory.remove_group_from_service"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.remove_group_from_service">[docs]</a> <span class="k">def</span> <span class="nf">remove_group_from_service</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupname</span><span class="p">,</span> <span class="n">servicename</span><span class="p">):</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">servicename</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_services</span><span class="p">:</span>
<span class="n">service</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="n">service</span><span class="o">.</span><span class="n">remove_groupname</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
@ -760,7 +760,7 @@
<span class="n">sub_service</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_sub_service</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="n">sub_service</span><span class="o">.</span><span class="n">remove_groupname</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Service&#39;</span><span class="p">),</span> <span class="n">servicename</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service&#39;</span><span class="p">),</span> <span class="n">servicename</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="Inventory.create_sub_service"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.create_sub_service">[docs]</a> <span class="k">def</span> <span class="nf">create_sub_service</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sub_servicename</span><span class="p">):</span>
<span class="k">if</span> <span class="n">sub_servicename</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sub_services</span><span class="p">:</span>
@ -795,7 +795,7 @@
<div class="viewcode-block" id="Inventory.set_deploy_mode"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.set_deploy_mode">[docs]</a> <span class="k">def</span> <span class="nf">set_deploy_mode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">remote_flag</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">remote_flag</span> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">InvalidConfiguration</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;Cannot set local deploy mode when multiple hosts exist.&#39;</span><span class="p">))</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Cannot set local deploy mode when multiple hosts exist.&#39;</span><span class="p">))</span>
<span class="bp">self</span><span class="o">.</span><span class="n">remote_mode</span> <span class="o">=</span> <span class="n">remote_flag</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_groups</span><span class="p">():</span>
@ -837,58 +837,58 @@
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">jdict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="c"># if no filter provided, use all groups, all hosts</span>
<span class="c1"># if no filter provided, use all groups, all hosts</span>
<span class="n">deploy_hostnames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_hostnames</span><span class="p">()</span>
<span class="n">deploy_groupnames</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">()</span>
<span class="k">if</span> <span class="n">inventory_filter</span><span class="p">:</span>
<span class="k">if</span> <span class="s">&#39;deploy_hosts&#39;</span> <span class="ow">in</span> <span class="n">inventory_filter</span><span class="p">:</span>
<span class="n">deploy_hostnames</span> <span class="o">=</span> <span class="n">inventory_filter</span><span class="p">[</span><span class="s">&#39;deploy_hosts&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="s">&#39;deploy_groups&#39;</span> <span class="ow">in</span> <span class="n">inventory_filter</span><span class="p">:</span>
<span class="n">deploy_groupnames</span> <span class="o">=</span> <span class="n">inventory_filter</span><span class="p">[</span><span class="s">&#39;deploy_groups&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="s1">&#39;deploy_hosts&#39;</span> <span class="ow">in</span> <span class="n">inventory_filter</span><span class="p">:</span>
<span class="n">deploy_hostnames</span> <span class="o">=</span> <span class="n">inventory_filter</span><span class="p">[</span><span class="s1">&#39;deploy_hosts&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="s1">&#39;deploy_groups&#39;</span> <span class="ow">in</span> <span class="n">inventory_filter</span><span class="p">:</span>
<span class="n">deploy_groupnames</span> <span class="o">=</span> <span class="n">inventory_filter</span><span class="p">[</span><span class="s1">&#39;deploy_groups&#39;</span><span class="p">]</span>
<span class="c"># add hostgroups</span>
<span class="c1"># add hostgroups</span>
<span class="k">for</span> <span class="n">group</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_groups</span><span class="p">():</span>
<span class="n">jdict</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="o">=</span> <span class="p">{}</span>
<span class="n">jdict</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="s">&#39;hosts&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">jdict</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="s1">&#39;hosts&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">group</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">deploy_groupnames</span><span class="p">:</span>
<span class="n">jdict</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="s">&#39;hosts&#39;</span><span class="p">]</span> <span class="o">=</span> \
<span class="n">jdict</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="s1">&#39;hosts&#39;</span><span class="p">]</span> <span class="o">=</span> \
<span class="bp">self</span><span class="o">.</span><span class="n">_filter_hosts</span><span class="p">(</span><span class="n">group</span><span class="o">.</span><span class="n">get_hostnames</span><span class="p">(),</span> <span class="n">deploy_hostnames</span><span class="p">)</span>
<span class="n">jdict</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="s">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">jdict</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="s">&#39;vars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">get_vars</span><span class="p">()</span>
<span class="n">jdict</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="s1">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="n">jdict</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="s1">&#39;vars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">get_vars</span><span class="p">()</span>
<span class="c"># add top-level services and what groups they are in</span>
<span class="c1"># add top-level services and what groups they are in</span>
<span class="k">for</span> <span class="n">service</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_services</span><span class="p">():</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">service</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">service</span><span class="o">.</span><span class="n">name</span><span class="p">][</span><span class="s">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">()</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">service</span><span class="o">.</span><span class="n">name</span><span class="p">][</span><span class="s1">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">service</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">()</span>
<span class="c"># add sub-services and their groups</span>
<span class="c1"># add sub-services and their groups</span>
<span class="k">for</span> <span class="n">sub_svc</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_sub_services</span><span class="p">():</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">sub_svc</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">groupnames</span> <span class="o">=</span> <span class="n">sub_svc</span><span class="o">.</span><span class="n">get_groupnames</span><span class="p">()</span>
<span class="k">if</span> <span class="n">groupnames</span><span class="p">:</span>
<span class="c"># sub-service is associated with a group(s)</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">sub_svc</span><span class="o">.</span><span class="n">name</span><span class="p">][</span><span class="s">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">groupnames</span>
<span class="c1"># sub-service is associated with a group(s)</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">sub_svc</span><span class="o">.</span><span class="n">name</span><span class="p">][</span><span class="s1">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">groupnames</span>
<span class="k">else</span><span class="p">:</span>
<span class="c"># sub-service is associated with parent service</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">sub_svc</span><span class="o">.</span><span class="n">name</span><span class="p">][</span><span class="s">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> \
<span class="c1"># sub-service is associated with parent service</span>
<span class="n">jdict</span><span class="p">[</span><span class="n">sub_svc</span><span class="o">.</span><span class="n">name</span><span class="p">][</span><span class="s1">&#39;children&#39;</span><span class="p">]</span> <span class="o">=</span> \
<span class="p">[</span><span class="n">sub_svc</span><span class="o">.</span><span class="n">get_parent_servicename</span><span class="p">()]</span>
<span class="c"># temporarily create group containing all hosts. this is needed for</span>
<span class="c"># ansible commands that are performed on hosts not yet in groups.</span>
<span class="n">group</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_group</span><span class="p">(</span><span class="s">&#39;__GLOBAL__&#39;</span><span class="p">)</span>
<span class="c1"># temporarily create group containing all hosts. this is needed for</span>
<span class="c1"># ansible commands that are performed on hosts not yet in groups.</span>
<span class="n">group</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">add_group</span><span class="p">(</span><span class="s1">&#39;__GLOBAL__&#39;</span><span class="p">)</span>
<span class="n">jdict</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="o">=</span> <span class="p">{}</span>
<span class="n">jdict</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="s">&#39;hosts&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">deploy_hostnames</span>
<span class="n">jdict</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="s">&#39;vars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">get_vars</span><span class="p">()</span>
<span class="n">jdict</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="s1">&#39;hosts&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">deploy_hostnames</span>
<span class="n">jdict</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="s1">&#39;vars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">group</span><span class="o">.</span><span class="n">get_vars</span><span class="p">()</span>
<span class="bp">self</span><span class="o">.</span><span class="n">remove_group</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="c"># process hosts vars</span>
<span class="n">jdict</span><span class="p">[</span><span class="s">&#39;_meta&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">jdict</span><span class="p">[</span><span class="s">&#39;_meta&#39;</span><span class="p">][</span><span class="s">&#39;hostvars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="c1"># process hosts vars</span>
<span class="n">jdict</span><span class="p">[</span><span class="s1">&#39;_meta&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="n">jdict</span><span class="p">[</span><span class="s1">&#39;_meta&#39;</span><span class="p">][</span><span class="s1">&#39;hostvars&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="n">deploy_hostnames</span><span class="p">:</span>
<span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_host</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">host</span><span class="p">:</span>
<span class="n">jdict</span><span class="p">[</span><span class="s">&#39;_meta&#39;</span><span class="p">][</span><span class="s">&#39;hostvars&#39;</span><span class="p">][</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">get_vars</span><span class="p">()</span>
<span class="n">jdict</span><span class="p">[</span><span class="s1">&#39;_meta&#39;</span><span class="p">][</span><span class="s1">&#39;hostvars&#39;</span><span class="p">][</span><span class="n">hostname</span><span class="p">]</span> <span class="o">=</span> <span class="n">host</span><span class="o">.</span><span class="n">get_vars</span><span class="p">()</span>
<span class="k">return</span> <span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">jdict</span><span class="p">)</span>
</div>
<span class="k">def</span> <span class="nf">_filter_hosts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">initial_hostnames</span><span class="p">,</span> <span class="n">deploy_hostnames</span><span class="p">):</span>
@ -914,19 +914,19 @@
<span class="n">json_out</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_ansible_json</span><span class="p">(</span><span class="n">inventory_filter</span><span class="p">)</span>
<span class="n">deploy_id</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">uuid</span><span class="o">.</span><span class="n">uuid4</span><span class="p">())</span>
<span class="n">dirname</span> <span class="o">=</span> <span class="s">&#39;kolla_</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">deploy_id</span>
<span class="n">dirname</span> <span class="o">=</span> <span class="s1">&#39;kolla_</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">deploy_id</span>
<span class="n">dirpath</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">tempfile</span><span class="o">.</span><span class="n">gettempdir</span><span class="p">(),</span> <span class="n">dirname</span><span class="p">)</span>
<span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">dirpath</span><span class="p">)</span>
<span class="n">json_gen_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">dirpath</span><span class="p">,</span> <span class="s">&#39;temp_inventory.py&#39;</span><span class="p">)</span>
<span class="n">json_gen_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">dirpath</span><span class="p">,</span> <span class="s1">&#39;temp_inventory.py&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">json_gen_path</span><span class="p">,</span> <span class="s">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">json_gen_file</span><span class="p">:</span>
<span class="n">json_gen_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&#39;#!/usr/bin/env python</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
<span class="c"># the quotes here are significant. The json_out has double quotes</span>
<span class="c"># embedded in it so single quotes are needed to wrap it.</span>
<span class="n">json_gen_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&quot;print(&#39;</span><span class="si">%s</span><span class="s">&#39;)&quot;</span> <span class="o">%</span> <span class="n">json_out</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">json_gen_path</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">json_gen_file</span><span class="p">:</span>
<span class="n">json_gen_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;#!/usr/bin/env python</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
<span class="c1"># the quotes here are significant. The json_out has double quotes</span>
<span class="c1"># embedded in it so single quotes are needed to wrap it.</span>
<span class="n">json_gen_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s2">&quot;print(&#39;</span><span class="si">%s</span><span class="s2">&#39;)&quot;</span> <span class="o">%</span> <span class="n">json_out</span><span class="p">)</span>
<span class="c"># set executable by group</span>
<span class="n">os</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="n">json_gen_path</span><span class="p">,</span> <span class="mi">0</span><span class="n">o555</span><span class="p">)</span> <span class="c"># nosec</span>
<span class="c1"># set executable by group</span>
<span class="n">os</span><span class="o">.</span><span class="n">chmod</span><span class="p">(</span><span class="n">json_gen_path</span><span class="p">,</span> <span class="mi">0</span><span class="n">o555</span><span class="p">)</span> <span class="c1"># nosec</span>
<span class="k">return</span> <span class="n">json_gen_path</span>
</div>
<div class="viewcode-block" id="Inventory.remove_json_gen_file"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.remove_json_gen_file">[docs]</a> <span class="k">def</span> <span class="nf">remove_json_gen_file</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">path</span><span class="p">):</span>
@ -934,34 +934,34 @@
</div>
<div class="viewcode-block" id="Inventory.validate_hostnames"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.validate_hostnames">[docs]</a> <span class="k">def</span> <span class="nf">validate_hostnames</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">hostnames</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Host name(s)&#39;</span><span class="p">))</span>
<span class="k">raise</span> <span class="n">MissingArgument</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host name(s)&#39;</span><span class="p">))</span>
<span class="n">invalid_hosts</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">hostname</span> <span class="ow">in</span> <span class="n">hostnames</span><span class="p">:</span>
<span class="k">if</span> <span class="n">hostname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_hosts</span><span class="p">:</span>
<span class="n">invalid_hosts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">invalid_hosts</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Host&#39;</span><span class="p">),</span> <span class="n">invalid_hosts</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">invalid_hosts</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="Inventory.validate_groupnames"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.validate_groupnames">[docs]</a> <span class="k">def</span> <span class="nf">validate_groupnames</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">groupnames</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">groupnames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Group name(s)&#39;</span><span class="p">))</span>
<span class="k">raise</span> <span class="n">MissingArgument</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group name(s)&#39;</span><span class="p">))</span>
<span class="n">invalid_groups</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">groupname</span> <span class="ow">in</span> <span class="n">groupnames</span><span class="p">:</span>
<span class="k">if</span> <span class="n">groupname</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_groups</span><span class="p">:</span>
<span class="n">invalid_groups</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">groupname</span><span class="p">)</span>
<span class="k">if</span> <span class="n">invalid_groups</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">invalid_groups</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">invalid_groups</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="Inventory.validate_servicenames"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.inventory.Inventory.validate_servicenames">[docs]</a> <span class="k">def</span> <span class="nf">validate_servicenames</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">servicenames</span><span class="p">):</span>
<span class="k">if</span> <span class="ow">not</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">MissingArgument</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;Service name(s)&#39;</span><span class="p">))</span>
<span class="k">raise</span> <span class="n">MissingArgument</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service name(s)&#39;</span><span class="p">))</span>
<span class="n">invalid_services</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">servicename</span> <span class="ow">in</span> <span class="n">servicenames</span><span class="p">:</span>
<span class="k">if</span> <span class="p">(</span><span class="n">servicename</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_services</span> <span class="ow">and</span>
<span class="n">servicename</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_sub_services</span><span class="p">):</span>
<span class="n">invalid_services</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">servicename</span><span class="p">)</span>
<span class="k">if</span> <span class="n">invalid_services</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Service&#39;</span><span class="p">),</span> <span class="n">invalid_services</span><span class="p">)</span></div></div>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Service&#39;</span><span class="p">),</span> <span class="n">invalid_services</span><span class="p">)</span></div></div>
</pre></div>
</div>
@ -995,7 +995,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.passwords &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.common.passwords</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">os</span>
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
@ -67,8 +67,8 @@
<span class="kn">from</span> <span class="nn">kollacli.api.exceptions</span> <span class="kn">import</span> <span class="n">FailedOperation</span>
<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>
<span class="n">PWDS_FILENAME</span> <span class="o">=</span> <span class="s1">&#39;passwords.yml&#39;</span>
<span class="n">PWD_EDITOR_FILENAME</span> <span class="o">=</span> <span class="s1">&#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>
@ -77,11 +77,11 @@
<span class="sd"> If the password name exists, it will be changed.</span>
<span class="sd"> If it doesn&#39;t exist, a new password will be added.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s"> -k </span><span class="si">%s</span><span class="s"> -v </span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_get_cmd_prefix</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>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> -k </span><span class="si">%s</span><span class="s1"> -v </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_get_cmd_prefix</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>
<span class="n">err_msg</span><span class="p">,</span> <span class="n">output</span> <span class="o">=</span> <span class="n">utils</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="k">raise</span> <span class="n">FailedOperation</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;Password set failed. {error} {message}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Password set failed. {error} {message}&#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="n">err_msg</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">output</span><span class="p">))</span>
</div>
@ -90,33 +90,33 @@
<span class="sd"> if the password exists, it will be removed from the passwords file</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s"> -k </span><span class="si">%s</span><span class="s"> -c&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_get_cmd_prefix</span><span class="p">(),</span> <span class="n">pwd_key</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> -k </span><span class="si">%s</span><span class="s1"> -c&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_get_cmd_prefix</span><span class="p">(),</span> <span class="n">pwd_key</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">utils</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="k">raise</span> <span class="n">FailedOperation</span><span class="p">(</span><span class="s">&#39;</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="k">raise</span> <span class="n">FailedOperation</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#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>
</div>
<div class="viewcode-block" id="get_password_names"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.passwords.get_password_names">[docs]</a><span class="k">def</span> <span class="nf">get_password_names</span><span class="p">():</span>
<span class="sd">&quot;&quot;&quot;return a list of password names&quot;&quot;&quot;</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s"> -l&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_get_cmd_prefix</span><span class="p">())</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> -l&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">_get_cmd_prefix</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">utils</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="k">raise</span> <span class="n">FailedOperation</span><span class="p">(</span><span class="s">&#39;</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="k">raise</span> <span class="n">FailedOperation</span><span class="p">(</span><span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#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="n">pwd_names</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">if</span> <span class="n">output</span> <span class="ow">and</span> <span class="s">&#39;,&#39;</span> <span class="ow">in</span> <span class="n">output</span><span class="p">:</span>
<span class="n">pwd_names</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="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
<span class="k">if</span> <span class="n">output</span> <span class="ow">and</span> <span class="s1">&#39;,&#39;</span> <span class="ow">in</span> <span class="n">output</span><span class="p">:</span>
<span class="n">pwd_names</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="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;,&#39;</span><span class="p">)</span>
<span class="k">return</span> <span class="n">pwd_names</span>
</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="s1">&#39;tools&#39;</span><span class="p">,</span>
<span class="n">PWD_EDITOR_FILENAME</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">prefix</span> <span class="o">=</span> <span class="s1">&#39;/usr/bin/sudo -u </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1"> -p </span><span class="si">%s</span><span class="s1"> &#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="k">return</span> <span class="n">prefix</span>
</pre></div>
@ -152,7 +152,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.properties &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.common.properties</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</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>
@ -77,16 +77,15 @@
<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>
<span class="n">ALLVARS_PATH</span> <span class="o">=</span> <span class="s">&#39;ansible/group_vars/all.yml&#39;</span>
<span class="n">GLOBALS_PATH</span> <span class="o">=</span> <span class="s">&#39;ansible/group_vars/__GLOBAL__&#39;</span>
<span class="n">ANSIBLE_ROLES_PATH</span> <span class="o">=</span> <span class="s">&#39;ansible/roles&#39;</span>
<span class="n">ANSIBLE_DEFAULTS_PATH</span> <span class="o">=</span> <span class="s">&#39;defaults/main.yml&#39;</span>
<span class="n">ALLVARS_PATH</span> <span class="o">=</span> <span class="s1">&#39;ansible/group_vars/all.yml&#39;</span>
<span class="n">GLOBALS_PATH</span> <span class="o">=</span> <span class="s1">&#39;ansible/group_vars/__GLOBAL__&#39;</span>
<span class="n">ANSIBLE_ROLES_PATH</span> <span class="o">=</span> <span class="s1">&#39;ansible/roles&#39;</span>
<span class="n">ANSIBLE_DEFAULTS_PATH</span> <span class="o">=</span> <span class="s1">&#39;defaults/main.yml&#39;</span>
<div class="viewcode-block" id="AnsibleProperties"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties">[docs]</a><span class="k">class</span> <span class="nc">AnsibleProperties</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">load_globals</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span> <span class="n">load_groups</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
<span class="n">load_hosts</span><span class="o">=</span><span class="bp">True</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="sd">&quot;&quot;&quot;initialize ansible property information</span>
<span class="sd"> property information is pulled from the following files</span>
@ -98,7 +97,7 @@
<span class="sd"> KOLLA_HOME/ansible/host_vars/*</span>
<span class="sd"> KOLLA_ETC/passwords.yml</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">globals_path</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">globals_path</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="bp">self</span><span class="o">.</span><span class="n">global_props</span> <span class="o">=</span> <span class="p">[]</span>
<span class="bp">self</span><span class="o">.</span><span class="n">unique_global_props</span> <span class="o">=</span> <span class="p">{}</span>
<span class="bp">self</span><span class="o">.</span><span class="n">unique_override_flags</span> <span class="o">=</span> <span class="p">{}</span>
@ -120,7 +119,7 @@
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">file_name</span><span class="p">):</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">file_name</span><span class="p">)</span> <span class="k">as</span> <span class="n">service_file</span><span class="p">:</span>
<span class="n">service_contents</span> <span class="o">=</span> <span class="n">yaml</span><span class="o">.</span><span class="n">safe_load</span><span class="p">(</span><span class="n">service_file</span><span class="p">)</span>
<span class="n">prop_file_name</span> <span class="o">=</span> <span class="n">service_name</span> <span class="o">+</span> <span class="s">&#39;:main.yml&#39;</span>
<span class="n">prop_file_name</span> <span class="o">=</span> <span class="n">service_name</span> <span class="o">+</span> <span class="s1">&#39;:main.yml&#39;</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">service_contents</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">ansible_prop</span> <span class="o">=</span> <span class="n">AnsibleProperty</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">prop_file_name</span><span class="p">)</span>
@ -138,7 +137,7 @@
<span class="n">overrides</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">orig_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">unique_global_props</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="n">ansible_prop</span> <span class="o">=</span> <span class="n">AnsibleProperty</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="s">&#39;group_vars/all.yml&#39;</span><span class="p">,</span>
<span class="s1">&#39;group_vars/all.yml&#39;</span><span class="p">,</span>
<span class="n">overrides</span><span class="p">,</span> <span class="n">orig_value</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">global_props</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ansible_prop</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">unique_global_props</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">ansible_prop</span>
@ -158,7 +157,7 @@
<span class="n">override_flags</span><span class="o">.</span><span class="n">ovr_global</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">orig_value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">unique_global_props</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="n">ansible_prop</span> <span class="o">=</span> <span class="n">AnsibleProperty</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="s">&#39;group_vars/__GLOBAL&#39;</span><span class="p">,</span>
<span class="s1">&#39;group_vars/__GLOBAL&#39;</span><span class="p">,</span>
<span class="n">overrides</span><span class="p">,</span> <span class="n">orig_value</span><span class="p">)</span>
<span class="n">ansible_prop</span><span class="o">.</span><span class="n">override_flags</span> <span class="o">=</span> <span class="n">override_flags</span>
<span class="bp">self</span><span class="o">.</span><span class="n">global_props</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ansible_prop</span><span class="p">)</span>
@ -188,18 +187,18 @@
<span class="n">ansible_prop</span> <span class="o">=</span> <span class="n">AnsibleProperty</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">hostfile</span><span class="p">,</span>
<span class="n">overrides</span><span class="p">,</span> <span class="n">orig_value</span><span class="p">,</span>
<span class="s">&#39;host&#39;</span><span class="p">,</span> <span class="n">hostfile</span><span class="p">)</span>
<span class="s1">&#39;host&#39;</span><span class="p">,</span> <span class="n">hostfile</span><span class="p">)</span>
<span class="n">props</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ansible_prop</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">host_props</span><span class="p">[</span><span class="n">hostfile</span><span class="p">]</span> <span class="o">=</span> <span class="n">props</span>
<span class="k">def</span> <span class="nf">_load_properties_groupvars</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="n">group_dir</span> <span class="o">=</span> <span class="n">get_group_vars_dir</span><span class="p">()</span>
<span class="k">for</span> <span class="n">groupfile</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">group_dir</span><span class="p">):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">groupfile</span> <span class="o">==</span> <span class="s">&#39;all.yml&#39;</span><span class="p">):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">groupfile</span> <span class="o">==</span> <span class="s1">&#39;all.yml&#39;</span><span class="p">):</span>
<span class="k">continue</span>
<span class="bp">self</span><span class="o">.</span><span class="n">group_props</span><span class="p">[</span><span class="n">groupfile</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span>
<span class="c"># don&#39;t load __GLOBAL__ as a group property list as it is globals</span>
<span class="k">if</span> <span class="n">groupfile</span> <span class="o">==</span> <span class="s">&#39;__GLOBAL__&#39;</span><span class="p">:</span>
<span class="c1"># don&#39;t load __GLOBAL__ as a group property list as it is globals</span>
<span class="k">if</span> <span class="n">groupfile</span> <span class="o">==</span> <span class="s1">&#39;__GLOBAL__&#39;</span><span class="p">:</span>
<span class="k">continue</span>
<span class="k">with</span> <span class="nb">open</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">group_dir</span><span class="p">,</span> <span class="n">groupfile</span><span class="p">))</span> <span class="k">as</span> <span class="n">group_data</span><span class="p">:</span>
<span class="n">group_contents</span> <span class="o">=</span> <span class="n">yaml</span><span class="o">.</span><span class="n">safe_load</span><span class="p">(</span><span class="n">group_data</span><span class="p">)</span>
@ -220,7 +219,7 @@
<span class="n">ansible_prop</span> <span class="o">=</span> <span class="n">AnsibleProperty</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">groupfile</span><span class="p">,</span>
<span class="n">overrides</span><span class="p">,</span> <span class="n">orig_value</span><span class="p">,</span>
<span class="s">&#39;group&#39;</span><span class="p">,</span> <span class="n">groupfile</span><span class="p">)</span>
<span class="s1">&#39;group&#39;</span><span class="p">,</span> <span class="n">groupfile</span><span class="p">)</span>
<span class="n">props</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ansible_prop</span><span class="p">)</span>
<span class="bp">self</span><span class="o">.</span><span class="n">group_props</span><span class="p">[</span><span class="n">groupfile</span><span class="p">]</span> <span class="o">=</span> <span class="n">props</span>
@ -234,7 +233,7 @@
<span class="k">for</span> <span class="n">host_name</span> <span class="ow">in</span> <span class="n">host_list</span><span class="p">:</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_host</span><span class="p">(</span><span class="n">host_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">host</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Host&#39;</span><span class="p">),</span> <span class="n">host_name</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">host_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">host_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">host_props</span><span class="p">:</span>
<span class="n">prop_list</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">host_props</span><span class="p">[</span><span class="n">host_name</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
@ -251,7 +250,7 @@
<span class="k">for</span> <span class="n">group_name</span> <span class="ow">in</span> <span class="n">group_list</span><span class="p">:</span>
<span class="n">group</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group</span><span class="p">(</span><span class="n">group_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">group</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">group_name</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">group_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">group_name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">group_props</span><span class="p">:</span>
<span class="n">prop_list</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">group_props</span><span class="p">[</span><span class="n">group_name</span><span class="p">]</span>
<span class="k">else</span><span class="p">:</span>
@ -277,17 +276,17 @@
<div class="viewcode-block" id="AnsibleProperties.get_all_override_flags"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.get_all_override_flags">[docs]</a> <span class="k">def</span> <span class="nf">get_all_override_flags</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">unique_override_flags</span>
<span class="c"># TODO(bmace) -- if this isn&#39;t used for 2.1.x it should be removed</span>
<span class="c"># property listing is still being tweaked so leaving for</span>
<span class="c"># the time being in case we want to use it</span></div>
<span class="c1"># TODO(bmace) -- if this isn&#39;t used for 2.1.x it should be removed</span>
<span class="c1"># property listing is still being tweaked so leaving for</span>
<span class="c1"># the time being in case we want to use it</span></div>
<div class="viewcode-block" id="AnsibleProperties.filter_jinja2"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.properties.AnsibleProperties.filter_jinja2">[docs]</a> <span class="k">def</span> <span class="nf">filter_jinja2</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">contents</span><span class="p">):</span>
<span class="n">new_contents</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">contents</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">six</span><span class="o">.</span><span class="n">string_types</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;removing non-string: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">value</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="s1">&#39;removing non-string: </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
<span class="k">continue</span>
<span class="k">if</span> <span class="n">value</span> <span class="ow">and</span> <span class="s">&#39;{{&#39;</span> <span class="ow">in</span> <span class="n">value</span> <span class="ow">and</span> <span class="s">&#39;}}&#39;</span> <span class="ow">in</span> <span class="n">value</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;removing jinja2 value: </span><span class="si">%s</span><span class="s">&#39;</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
<span class="k">if</span> <span class="n">value</span> <span class="ow">and</span> <span class="s1">&#39;{{&#39;</span> <span class="ow">in</span> <span class="n">value</span> <span class="ow">and</span> <span class="s1">&#39;}}&#39;</span> <span class="ow">in</span> <span class="n">value</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="s1">&#39;removing jinja2 value: </span><span class="si">%s</span><span class="s1">&#39;</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
<span class="k">continue</span>
<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>
@ -300,7 +299,7 @@
<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>
<span class="c"># if hosts is None set the property on all hosts</span>
<span class="c1"># 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>
<span class="k">if</span> <span class="n">hosts</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
@ -309,7 +308,7 @@
<span class="k">for</span> <span class="n">host_name</span> <span class="ow">in</span> <span class="n">hosts</span><span class="p">:</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_host</span><span class="p">(</span><span class="n">host_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">host</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Host&#39;</span><span class="p">),</span> <span class="n">host_name</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">host_name</span><span class="p">)</span>
<span class="n">host_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<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>
@ -320,7 +319,7 @@
<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>
<span class="c"># if groups is None set the property on all hosts</span>
<span class="c1"># 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>
<span class="k">if</span> <span class="n">groups</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
@ -329,7 +328,7 @@
<span class="k">for</span> <span class="n">group_name</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">group</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group</span><span class="p">(</span><span class="n">group_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">group</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">group_name</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">group_name</span><span class="p">)</span>
<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>
@ -347,7 +346,7 @@
<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>
<span class="c"># if hosts is None set the property on all hosts</span>
<span class="c1"># 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>
<span class="k">if</span> <span class="n">hosts</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
@ -356,7 +355,7 @@
<span class="k">for</span> <span class="n">host_name</span> <span class="ow">in</span> <span class="n">hosts</span><span class="p">:</span>
<span class="n">host</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_host</span><span class="p">(</span><span class="n">host_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">host</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Host&#39;</span><span class="p">),</span> <span class="n">host_name</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Host&#39;</span><span class="p">),</span> <span class="n">host_name</span><span class="p">)</span>
<span class="n">host_list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">host</span><span class="p">)</span>
<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>
@ -367,7 +366,7 @@
<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>
<span class="c"># if hosts is None set the property on all hosts</span>
<span class="c1"># 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>
<span class="k">if</span> <span class="n">groups</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
@ -376,7 +375,7 @@
<span class="k">for</span> <span class="n">group_name</span> <span class="ow">in</span> <span class="n">groups</span><span class="p">:</span>
<span class="n">group</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">get_group</span><span class="p">(</span><span class="n">group_name</span><span class="p">)</span>
<span class="k">if</span> <span class="n">group</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">NotInInventory</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;Group&#39;</span><span class="p">),</span> <span class="n">group_name</span><span class="p">)</span>
<span class="k">raise</span> <span class="n">NotInInventory</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Group&#39;</span><span class="p">),</span> <span class="n">group_name</span><span class="p">)</span>
<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>
@ -390,7 +389,7 @@
<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>
<span class="n">orig_value</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">prop_type</span><span class="o">=</span><span class="s">&#39;global&#39;</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="n">orig_value</span><span class="o">=</span><span class="bp">None</span><span class="p">,</span> <span class="n">prop_type</span><span class="o">=</span><span class="s1">&#39;global&#39;</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="bp">None</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
<span class="bp">self</span><span class="o">.</span><span class="n">value</span> <span class="o">=</span> <span class="n">value</span>
<span class="bp">self</span><span class="o">.</span><span class="n">prop_type</span> <span class="o">=</span> <span class="n">prop_type</span>
@ -439,7 +438,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.sshutils &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.common.sshutils</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os.path</span>
<span class="kn">import</span> <span class="nn">paramiko</span>
@ -72,7 +72,7 @@
<span class="kn">import</span> <span class="nn">kollacli.i18n</span> <span class="kn">as</span> <span class="nn">u</span>
<span class="n">MIN_DOCKER_VERSION</span> <span class="o">=</span> <span class="s">&#39;1.8.1&#39;</span>
<span class="n">MIN_DOCKER_VERSION</span> <span class="o">=</span> <span class="s1">&#39;1.8.1&#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>
@ -99,17 +99,17 @@
<span class="k">try</span><span class="p">:</span>
<span class="n">ssh_client</span> <span class="o">=</span> <span class="n">ssh_connect</span><span class="p">(</span><span class="n">net_addr</span><span class="p">,</span> <span class="n">setup_user</span><span class="p">,</span> <span class="n">password</span><span class="p">)</span>
<span class="c"># before modifying the host, check that it meets requirements</span>
<span class="c"># TODO(bmace) pre / post checks should be done with ansible</span>
<span class="c1"># before modifying the host, check that it meets requirements</span>
<span class="c1"># TODO(bmace) pre / post checks should be done with ansible</span>
<span class="c"># populate authorized keys file w/ public key</span>
<span class="n">key_dir</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">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s">&#39;~kolla&#39;</span><span class="p">),</span>
<span class="s">&#39;.ssh&#39;</span><span class="p">,</span> <span class="s">&#39;authorized_keys&#39;</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="s">&#39;/usr/bin/sudo su - </span><span class="si">%s</span><span class="s"> -c &quot;echo </span><span class="se">\&#39;</span><span class="si">%s</span><span class="se">\&#39;</span><span class="s"> &gt;&gt; </span><span class="si">%s</span><span class="s">&quot;&#39;</span>
<span class="c1"># populate authorized keys file w/ public key</span>
<span class="n">key_dir</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">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">expanduser</span><span class="p">(</span><span class="s1">&#39;~kolla&#39;</span><span class="p">),</span>
<span class="s1">&#39;.ssh&#39;</span><span class="p">,</span> <span class="s1">&#39;authorized_keys&#39;</span><span class="p">)</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="p">(</span><span class="s1">&#39;/usr/bin/sudo su - </span><span class="si">%s</span><span class="s1"> -c &quot;echo </span><span class="se">\&#39;</span><span class="si">%s</span><span class="se">\&#39;</span><span class="s1"> &gt;&gt; </span><span class="si">%s</span><span class="s1">&quot;&#39;</span>
<span class="o">%</span> <span class="p">(</span><span class="n">admin_user</span><span class="p">,</span> <span class="n">public_key</span><span class="p">,</span> <span class="n">key_dir</span><span class="p">))</span>
<span class="n">_exec_ssh_cmd</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">ssh_client</span><span class="p">)</span>
<span class="c"># TODO(bmace) verify ssh connection to the new account</span>
<span class="c1"># TODO(bmace) verify ssh connection to the new account</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>
@ -120,26 +120,26 @@
<span class="k">if</span> <span class="n">ssh_client</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">ssh_client</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span> <span class="c"># nosec</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</span> <span class="c1"># nosec</span>
<span class="k">pass</span>
<span class="k">def</span> <span class="nf">_exec_ssh_cmd</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">ssh_client</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="n">cmd</span><span class="p">)</span>
<span class="n">_</span><span class="p">,</span> <span class="n">stdout</span><span class="p">,</span> <span class="n">stderr</span> <span class="o">=</span> <span class="n">ssh_client</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">get_pty</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="c"># nosec</span>
<span class="n">_</span><span class="p">,</span> <span class="n">stdout</span><span class="p">,</span> <span class="n">stderr</span> <span class="o">=</span> <span class="n">ssh_client</span><span class="o">.</span><span class="n">exec_command</span><span class="p">(</span><span class="n">cmd</span><span class="p">,</span> <span class="n">get_pty</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span> <span class="c1"># nosec</span>
<span class="n">msg</span> <span class="o">=</span> <span class="n">stdout</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="n">errmsg</span> <span class="o">=</span> <span class="n">stderr</span><span class="o">.</span><span class="n">read</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;</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">msg</span><span class="p">,</span> <span class="n">errmsg</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="s1">&#39;</span><span class="si">%s</span><span class="s1"> : </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">msg</span><span class="p">,</span> <span class="n">errmsg</span><span class="p">))</span>
<span class="k">if</span> <span class="n">errmsg</span><span class="p">:</span>
<span class="n">LOG</span><span class="o">.</span><span class="n">warn</span><span class="p">(</span>
<span class="n">u</span><span class="o">.</span><span class="n">_LW</span><span class="p">(</span><span class="s">&#39;WARNING: command : {command})</span><span class="se">\n</span><span class="s">message : {message}&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_LW</span><span class="p">(</span><span class="s1">&#39;WARNING: command : {command})</span><span class="se">\n</span><span class="s1">message : {message}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="n">cmd</span><span class="p">,</span> <span class="n">message</span><span class="o">=</span><span class="n">errmsg</span><span class="o">.</span><span class="n">strip</span><span class="p">()))</span>
<span class="k">return</span> <span class="n">msg</span><span class="p">,</span> <span class="n">errmsg</span>
<div class="viewcode-block" id="ssh_get_public_key"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.sshutils.ssh_get_public_key">[docs]</a><span class="k">def</span> <span class="nf">ssh_get_public_key</span><span class="p">():</span>
<span class="n">keyfile_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_kollacli_etc</span><span class="p">(),</span> <span class="s">&#39;id_rsa.pub&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">keyfile_path</span><span class="p">,</span> <span class="s">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">public_key_file</span><span class="p">:</span>
<span class="n">keyfile_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_kollacli_etc</span><span class="p">(),</span> <span class="s1">&#39;id_rsa.pub&#39;</span><span class="p">)</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">keyfile_path</span><span class="p">,</span> <span class="s2">&quot;r&quot;</span><span class="p">)</span> <span class="k">as</span> <span class="n">public_key_file</span><span class="p">:</span>
<span class="n">public_key</span> <span class="o">=</span> <span class="n">public_key_file</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
<span class="k">return</span> <span class="n">public_key</span>
<span class="k">return</span> <span class="bp">None</span></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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.support &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,28 +47,25 @@
<div class="body">
<h1>Source code for kollacli.common.support</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</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">tarfile</span>
<span class="kn">import</span> <span class="nn">tempfile</span>
<span class="kn">import</span> <span class="nn">traceback</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">from</span> <span class="nn">kollacli.common.inventory</span> <span class="kn">import</span> <span class="n">Inventory</span>
<span class="kn">from</span> <span class="nn">kollacli.common.utils</span> <span class="kn">import</span> <span class="n">get_kolla_etc</span>
@ -87,84 +84,72 @@
<span class="sd"> tar file so be given to support / development to help with</span>
<span class="sd"> debugging problems.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">msg</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">return_code</span> <span class="o">=</span> <span class="mi">0</span>
<span class="n">kolla_home</span> <span class="o">=</span> <span class="n">get_kolla_home</span><span class="p">()</span>
<span class="n">kolla_logs</span> <span class="o">=</span> <span class="n">get_kolla_log_dir</span><span class="p">()</span>
<span class="n">kolla_ansible</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">kolla_home</span><span class="p">,</span> <span class="s">&#39;ansible&#39;</span><span class="p">)</span>
<span class="n">kolla_docs</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">kolla_home</span><span class="p">,</span> <span class="s">&#39;docs&#39;</span><span class="p">)</span>
<span class="n">kolla_etc</span> <span class="o">=</span> <span class="n">get_kolla_etc</span><span class="p">()</span>
<span class="n">kolla_config</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">kolla_etc</span><span class="p">,</span> <span class="s">&#39;config&#39;</span><span class="p">)</span>
<span class="n">kollacli_etc</span> <span class="o">=</span> <span class="n">get_kollacli_etc</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s">&#39;/&#39;</span><span class="p">)</span>
<span class="n">ketc</span> <span class="o">=</span> <span class="s">&#39;kolla/etc/&#39;</span>
<span class="n">kshare</span> <span class="o">=</span> <span class="s">&#39;kolla/share/&#39;</span>
<span class="n">fd</span><span class="p">,</span> <span class="n">dump_path</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkstemp</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s">&#39;kollacli_dump_&#39;</span><span class="p">,</span>
<span class="n">suffix</span><span class="o">=</span><span class="s">&#39;.tgz&#39;</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="n">fd</span><span class="p">)</span> <span class="c"># avoid fd leak</span>
<span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">dump_path</span><span class="p">,</span> <span class="s">&#39;w:gz&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar</span><span class="p">:</span>
<span class="c"># Can&#39;t blanket add kolla_home because the .ssh dir is</span>
<span class="c"># accessible by the kolla user only (not kolla group)</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_ansible</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">kshare</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">basename</span><span class="p">(</span><span class="n">kolla_ansible</span><span class="p">))</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_docs</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">kshare</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">basename</span><span class="p">(</span><span class="n">kolla_docs</span><span class="p">))</span>
<span class="n">kolla_home</span> <span class="o">=</span> <span class="n">get_kolla_home</span><span class="p">()</span>
<span class="n">kolla_logs</span> <span class="o">=</span> <span class="n">get_kolla_log_dir</span><span class="p">()</span>
<span class="n">kolla_ansible</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">kolla_home</span><span class="p">,</span> <span class="s1">&#39;ansible&#39;</span><span class="p">)</span>
<span class="n">kolla_docs</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">kolla_home</span><span class="p">,</span> <span class="s1">&#39;docs&#39;</span><span class="p">)</span>
<span class="n">kolla_etc</span> <span class="o">=</span> <span class="n">get_kolla_etc</span><span class="p">()</span>
<span class="n">kolla_config</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">kolla_etc</span><span class="p">,</span> <span class="s1">&#39;config&#39;</span><span class="p">)</span>
<span class="n">kollacli_etc</span> <span class="o">=</span> <span class="n">get_kollacli_etc</span><span class="p">()</span><span class="o">.</span><span class="n">rstrip</span><span class="p">(</span><span class="s1">&#39;/&#39;</span><span class="p">)</span>
<span class="n">ketc</span> <span class="o">=</span> <span class="s1">&#39;kolla/etc/&#39;</span>
<span class="n">kshare</span> <span class="o">=</span> <span class="s1">&#39;kolla/share/&#39;</span>
<span class="n">fd</span><span class="p">,</span> <span class="n">dump_path</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkstemp</span><span class="p">(</span><span class="n">prefix</span><span class="o">=</span><span class="s1">&#39;kollacli_dump_&#39;</span><span class="p">,</span>
<span class="n">suffix</span><span class="o">=</span><span class="s1">&#39;.tgz&#39;</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="n">fd</span><span class="p">)</span> <span class="c1"># avoid fd leak</span>
<span class="k">with</span> <span class="n">tarfile</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="n">dump_path</span><span class="p">,</span> <span class="s1">&#39;w:gz&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tar</span><span class="p">:</span>
<span class="c1"># Can&#39;t blanket add kolla_home because the .ssh dir is</span>
<span class="c1"># accessible by the kolla user only (not kolla group)</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_ansible</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">kshare</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">basename</span><span class="p">(</span><span class="n">kolla_ansible</span><span class="p">))</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_docs</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">kshare</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">basename</span><span class="p">(</span><span class="n">kolla_docs</span><span class="p">))</span>
<span class="c"># Can&#39;t blanket add kolla_etc because the passwords.yml</span>
<span class="c"># file is accessible by the kolla user only (not kolla group)</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_config</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">ketc</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">basename</span><span class="p">(</span><span class="n">kolla_config</span><span class="p">))</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kollacli_etc</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">ketc</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">basename</span><span class="p">(</span><span class="n">kollacli_etc</span><span class="p">))</span>
<span class="c1"># Can&#39;t blanket add kolla_etc because the passwords.yml</span>
<span class="c1"># file is accessible by the kolla user only (not kolla group)</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_config</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">ketc</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">basename</span><span class="p">(</span><span class="n">kolla_config</span><span class="p">))</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kollacli_etc</span><span class="p">,</span>
<span class="n">arcname</span><span class="o">=</span><span class="n">ketc</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">basename</span><span class="p">(</span><span class="n">kollacli_etc</span><span class="p">))</span>
<span class="c"># add kolla log files</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">kolla_logs</span><span class="p">):</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_logs</span><span class="p">)</span>
<span class="c1"># add kolla log files</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isdir</span><span class="p">(</span><span class="n">kolla_logs</span><span class="p">):</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">kolla_logs</span><span class="p">)</span>
<span class="c"># add output of various commands</span>
<span class="n">_add_cmd_info</span><span class="p">(</span><span class="n">tar</span><span class="p">)</span>
<span class="c1"># add output of various commands</span>
<span class="n">_add_cmd_info</span><span class="p">(</span><span class="n">tar</span><span class="p">)</span>
<span class="n">msg</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_LI</span><span class="p">(</span><span class="s">&#39;dump successful to {path}&#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">dump_path</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="n">msg</span><span class="p">)</span>
<span class="k">except</span> <span class="ne">Exception</span><span class="p">:</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">_LI</span><span class="p">(</span><span class="s">&#39;dump failed: {reason}&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">reason</span><span class="o">=</span><span class="n">traceback</span><span class="o">.</span><span class="n">format_exc</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="n">msg</span><span class="p">)</span>
<span class="n">return_code</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span>
<span class="k">return</span> <span class="n">return_code</span><span class="p">,</span> <span class="n">msg</span>
<span class="k">return</span> <span class="n">dump_path</span>
</div>
<span class="k">def</span> <span class="nf">_add_cmd_info</span><span class="p">(</span><span class="n">tar</span><span class="p">):</span>
<span class="c"># run all the kollacli list commands</span>
<span class="n">cmds</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;kollacli --version&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli service listgroups&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli service list&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli group listservices&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli group listhosts&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli host list&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli property list&#39;</span><span class="p">,</span>
<span class="s">&#39;kollacli password list&#39;</span><span class="p">]</span>
<span class="c1"># run all the kollacli list commands</span>
<span class="n">cmds</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;kollacli --version&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli service listgroups&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli service list&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli group listservices&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli group listhosts&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli host list&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli property list&#39;</span><span class="p">,</span>
<span class="s1">&#39;kollacli password list&#39;</span><span class="p">]</span>
<span class="c"># collect the json inventory output</span>
<span class="c1"># collect the json inventory output</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">inv_path</span> <span class="o">=</span> <span class="n">inventory</span><span class="o">.</span><span class="n">create_json_gen_file</span><span class="p">()</span>
<span class="n">cmds</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">inv_path</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">fd</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkstemp</span><span class="p">(</span><span class="n">suffix</span><span class="o">=</span><span class="s">&#39;.tmp&#39;</span><span class="p">)</span>
<span class="n">fd</span><span class="p">,</span> <span class="n">path</span> <span class="o">=</span> <span class="n">tempfile</span><span class="o">.</span><span class="n">mkstemp</span><span class="p">(</span><span class="n">suffix</span><span class="o">=</span><span class="s1">&#39;.tmp&#39;</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="n">fd</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="s">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tmp_file</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="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">tmp_file</span><span class="p">:</span>
<span class="k">for</span> <span class="n">cmd</span> <span class="ow">in</span> <span class="n">cmds</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="bp">False</span><span class="p">)</span>
<span class="n">tmp_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&#39;</span><span class="se">\n\n</span><span class="s">$ </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">cmd</span><span class="p">)</span>
<span class="n">tmp_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;</span><span class="se">\n\n</span><span class="s1">$ </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">cmd</span><span class="p">)</span>
<span class="k">if</span> <span class="n">err_msg</span><span class="p">:</span>
<span class="n">tmp_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s">&#39;Error message: </span><span class="si">%s</span><span class="se">\n</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">err_msg</span><span class="p">)</span>
<span class="n">tmp_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">&#39;Error message: </span><span class="si">%s</span><span class="se">\n</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">err_msg</span><span class="p">)</span>
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">output</span><span class="p">:</span>
<span class="n">tmp_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">line</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span><span class="p">)</span>
<span class="n">tmp_file</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">line</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">arcname</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="s">&#39;kolla&#39;</span><span class="p">,</span> <span class="s">&#39;cmds_output&#39;</span><span class="p">))</span>
<span class="n">tar</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">arcname</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="s1">&#39;kolla&#39;</span><span class="p">,</span> <span class="s1">&#39;cmds_output&#39;</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>
@ -205,7 +190,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.utils &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.common.utils</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</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>
@ -72,36 +72,37 @@
<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.exceptions</span> <span class="kn">import</span> <span class="n">InvalidArgument</span>
<span class="kn">from</span> <span class="nn">kollacli.api.exceptions</span> <span class="kn">import</span> <span class="n">MissingArgument</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>
<div class="viewcode-block" id="get_kolla_home"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kolla_home">[docs]</a><span class="k">def</span> <span class="nf">get_kolla_home</span><span class="p">():</span>
<span class="k">return</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="s">&quot;KOLLA_HOME&quot;</span><span class="p">,</span> <span class="s">&quot;/usr/share/kolla/&quot;</span><span class="p">)</span>
<span class="k">return</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="s2">&quot;KOLLA_HOME&quot;</span><span class="p">,</span> <span class="s2">&quot;/usr/share/kolla/&quot;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_kolla_etc"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kolla_etc">[docs]</a><span class="k">def</span> <span class="nf">get_kolla_etc</span><span class="p">():</span>
<span class="k">return</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="s">&quot;KOLLA_ETC&quot;</span><span class="p">,</span> <span class="s">&quot;/etc/kolla/&quot;</span><span class="p">)</span>
<span class="k">return</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="s2">&quot;KOLLA_ETC&quot;</span><span class="p">,</span> <span class="s2">&quot;/etc/kolla/&quot;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_kollacli_home"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kollacli_home">[docs]</a><span class="k">def</span> <span class="nf">get_kollacli_home</span><span class="p">():</span>
<span class="k">return</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="s">&quot;KOLLA_CLI_HOME&quot;</span><span class="p">,</span> <span class="s">&quot;/usr/share/kolla/kollacli/&quot;</span><span class="p">)</span>
<span class="k">return</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="s2">&quot;KOLLA_CLI_HOME&quot;</span><span class="p">,</span> <span class="s2">&quot;/usr/share/kolla/kollacli/&quot;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_kollacli_etc"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kollacli_etc">[docs]</a><span class="k">def</span> <span class="nf">get_kollacli_etc</span><span class="p">():</span>
<span class="k">return</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="s">&quot;KOLLA_CLI_ETC&quot;</span><span class="p">,</span> <span class="s">&quot;/etc/kolla/kollacli/&quot;</span><span class="p">)</span>
<span class="k">return</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="s2">&quot;KOLLA_CLI_ETC&quot;</span><span class="p">,</span> <span class="s2">&quot;/etc/kolla/kollacli/&quot;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_group_vars_dir"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_group_vars_dir">[docs]</a><span class="k">def</span> <span class="nf">get_group_vars_dir</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_kolla_home</span><span class="p">(),</span> <span class="s">&#39;ansible/group_vars&#39;</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_kolla_home</span><span class="p">(),</span> <span class="s1">&#39;ansible/group_vars&#39;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_host_vars_dir"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_host_vars_dir">[docs]</a><span class="k">def</span> <span class="nf">get_host_vars_dir</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_kolla_home</span><span class="p">(),</span> <span class="s">&#39;ansible/host_vars&#39;</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_kolla_home</span><span class="p">(),</span> <span class="s1">&#39;ansible/host_vars&#39;</span><span class="p">)</span>
</div>
<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>
<span class="k">return</span> <span class="s1">&#39;/var/log/kolla/&#39;</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>
@ -113,37 +114,37 @@
</div>
<div class="viewcode-block" id="get_kolla_log_file_size"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_kolla_log_file_size">[docs]</a><span class="k">def</span> <span class="nf">get_kolla_log_file_size</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="n">envvar</span> <span class="o">=</span> <span class="s1">&#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="s1">&#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="k">raise</span> <span class="n">InvalidArgument</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;Environmental variable ({env_var}) is not an &#39;</span>
<span class="s">&#39;integer ({log_size}).&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Environmental variable ({env_var}) is not an &#39;</span>
<span class="s1">&#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="k">return</span> <span class="n">size</span>
</div>
<div class="viewcode-block" id="get_property_list_length"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_property_list_length">[docs]</a><span class="k">def</span> <span class="nf">get_property_list_length</span><span class="p">():</span>
<span class="n">envvar</span> <span class="o">=</span> <span class="s">&#39;KOLLA_PROP_LIST_LENGTH&#39;</span>
<span class="n">length_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;50&#39;</span><span class="p">)</span>
<span class="n">envvar</span> <span class="o">=</span> <span class="s1">&#39;KOLLA_PROP_LIST_LENGTH&#39;</span>
<span class="n">length_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="s1">&#39;50&#39;</span><span class="p">)</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">length</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">length_str</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">InvalidArgument</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;Environmental variable ({env_var}) is not an &#39;</span>
<span class="s">&#39;integer ({prop_length}).&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Environmental variable ({env_var}) is not an &#39;</span>
<span class="s1">&#39;integer ({prop_length}).&#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">prop_length</span><span class="o">=</span><span class="n">length_str</span><span class="p">))</span>
<span class="k">return</span> <span class="n">length</span>
</div>
<div class="viewcode-block" id="get_admin_user"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_admin_user">[docs]</a><span class="k">def</span> <span class="nf">get_admin_user</span><span class="p">():</span>
<span class="k">return</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="s">&quot;KOLLA_CLI_ADMIN_USER&quot;</span><span class="p">,</span> <span class="s">&quot;kolla&quot;</span><span class="p">)</span>
<span class="k">return</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="s2">&quot;KOLLA_CLI_ADMIN_USER&quot;</span><span class="p">,</span> <span class="s2">&quot;kolla&quot;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_setup_user"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_setup_user">[docs]</a><span class="k">def</span> <span class="nf">get_setup_user</span><span class="p">():</span>
<span class="k">return</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="s">&quot;KOLLA_CLI_SETUP_USER&quot;</span><span class="p">,</span> <span class="s">&quot;root&quot;</span><span class="p">)</span>
<span class="k">return</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="s2">&quot;KOLLA_CLI_SETUP_USER&quot;</span><span class="p">,</span> <span class="s2">&quot;root&quot;</span><span class="p">)</span>
</div>
<div class="viewcode-block" id="get_ansible_command"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.get_ansible_command">[docs]</a><span class="k">def</span> <span class="nf">get_ansible_command</span><span class="p">(</span><span class="n">playbook</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
@ -153,26 +154,26 @@
<span class="sd"> python is py3, prefix the ansible command with a py2</span>
<span class="sd"> interpreter.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;ansible&#39;</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;ansible&#39;</span>
<span class="k">if</span> <span class="n">playbook</span><span class="p">:</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;ansible-playbook&#39;</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;ansible-playbook&#39;</span>
<span class="k">if</span> <span class="n">sys</span><span class="o">.</span><span class="n">version_info</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="mi">3</span><span class="p">:</span>
<span class="c"># running with py3, find a py2 interpreter for ansible</span>
<span class="c1"># running with py3, find a py2 interpreter for ansible</span>
<span class="n">py2_path</span> <span class="o">=</span> <span class="bp">None</span>
<span class="n">usr_bin</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="s">&#39;/&#39;</span><span class="p">,</span> <span class="s">&#39;usr&#39;</span><span class="p">,</span> <span class="s">&#39;bin&#39;</span><span class="p">)</span>
<span class="n">usr_bin</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="s1">&#39;/&#39;</span><span class="p">,</span> <span class="s1">&#39;usr&#39;</span><span class="p">,</span> <span class="s1">&#39;bin&#39;</span><span class="p">)</span>
<span class="k">for</span> <span class="n">fname</span> <span class="ow">in</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">usr_bin</span><span class="p">):</span>
<span class="k">if</span> <span class="p">(</span><span class="n">fname</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s">&#39;python2.&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="k">if</span> <span class="p">(</span><span class="n">fname</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s1">&#39;python2.&#39;</span><span class="p">)</span> <span class="ow">and</span>
<span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</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">usr_bin</span><span class="p">,</span> <span class="n">fname</span><span class="p">))):</span>
<span class="n">suffix</span> <span class="o">=</span> <span class="n">fname</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;.&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
<span class="n">suffix</span> <span class="o">=</span> <span class="n">fname</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span>
<span class="k">if</span> <span class="n">suffix</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span>
<span class="n">py2_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">usr_bin</span><span class="p">,</span> <span class="n">fname</span><span class="p">)</span>
<span class="k">break</span>
<span class="k">if</span> <span class="n">py2_path</span> <span class="ow">is</span> <span class="bp">None</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;ansible-playbook requires python2 and no &#39;</span>
<span class="s">&#39;python2 interpreter found in {path}.&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;ansible-playbook requires python2 and no &#39;</span>
<span class="s1">&#39;python2 interpreter found in {path}.&#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">usr_bin</span><span class="p">))</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s">&#39;</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">py2_path</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">usr_bin</span><span class="p">,</span> <span class="n">cmd</span><span class="p">))</span>
<span class="n">cmd</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="p">(</span><span class="n">py2_path</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">usr_bin</span><span class="p">,</span> <span class="n">cmd</span><span class="p">))</span>
<span class="k">return</span> <span class="n">cmd</span>
</div>
@ -198,36 +199,36 @@
<span class="sd"> If the command is an ansible playbook command, record the</span>
<span class="sd"> output in an ansible log file.</span>
<span class="sd"> &quot;&quot;&quot;</span>
<span class="n">pwd_prompt</span> <span class="o">=</span> <span class="s">&#39;[sudo] password&#39;</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">output</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">pwd_prompt</span> <span class="o">=</span> <span class="s1">&#39;[sudo] password&#39;</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">child</span> <span class="o">=</span> <span class="bp">None</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">child</span> <span class="o">=</span> <span class="n">pexpect</span><span class="o">.</span><span class="n">spawn</span><span class="p">(</span><span class="n">cmd</span><span class="p">)</span>
<span class="n">sniff</span> <span class="o">=</span> <span class="n">child</span><span class="o">.</span><span class="n">read</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">pwd_prompt</span><span class="p">))</span>
<span class="n">sniff</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">sniff</span><span class="p">)</span>
<span class="k">if</span> <span class="n">sniff</span> <span class="o">==</span> <span class="n">pwd_prompt</span><span class="p">:</span>
<span class="n">output</span> <span class="o">=</span> <span class="n">sniff</span> <span class="o">+</span> <span class="s">&#39;</span><span class="se">\n</span><span class="s">&#39;</span>
<span class="n">output</span> <span class="o">=</span> <span class="n">sniff</span> <span class="o">+</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</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;Insufficient permissions to run command &quot;{command}&quot;.&#39;</span><span class="p">)</span>
<span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Insufficient permissions to run command &quot;{command}&quot;.&#39;</span><span class="p">)</span>
<span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">command</span><span class="o">=</span><span class="n">cmd</span><span class="p">))</span>
<span class="n">child</span><span class="o">.</span><span class="n">maxsize</span> <span class="o">=</span> <span class="mi">1</span>
<span class="n">child</span><span class="o">.</span><span class="n">timeout</span> <span class="o">=</span> <span class="mi">86400</span>
<span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">child</span><span class="p">:</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">safe_decode</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
<span class="n">outline</span> <span class="o">=</span> <span class="n">sniff</span> <span class="o">+</span> <span class="n">line</span><span class="o">.</span><span class="n">rstrip</span><span class="p">()</span>
<span class="n">sniff</span> <span class="o">=</span> <span class="s">&#39;&#39;</span>
<span class="n">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="n">output</span><span class="p">,</span> <span class="n">outline</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">sniff</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
<span class="n">output</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">output</span><span class="p">,</span> <span class="n">outline</span><span class="p">,</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">])</span>
<span class="k">if</span> <span class="n">print_output</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="n">outline</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">err_msg</span> <span class="o">=</span> <span class="s">&#39;</span><span class="si">%s</span><span class="s">&#39;</span> <span class="o">%</span> <span class="n">e</span>
<span class="n">err_msg</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">&#39;</span> <span class="o">%</span> <span class="n">e</span>
<span class="k">finally</span><span class="p">:</span>
<span class="k">if</span> <span class="n">child</span><span class="p">:</span>
<span class="n">child</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
<span class="k">if</span> <span class="n">child</span><span class="o">.</span><span class="n">exitstatus</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">err_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;Command failed. : {error}&#39;</span><span class="p">)</span>
<span class="n">err_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="s1">&#39;Command failed. : {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="n">err_msg</span><span class="p">))</span>
<span class="k">return</span> <span class="n">err_msg</span><span class="p">,</span> <span class="n">output</span>
@ -246,22 +247,22 @@
<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">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="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="s1">&#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>
<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="s1">&#39;a&#39;</span><span class="p">):</span>
<span class="n">os</span><span class="o">.</span><span class="n">utime</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="bp">None</span><span class="p">)</span>
<span class="n">os</span><span class="o">.</span><span class="n">chown</span><span class="p">(</span><span class="n">file_path</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="n">group_info</span><span class="o">.</span><span class="n">gr_gid</span><span class="p">)</span>
<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">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="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">)</span>
<span class="n">new_line</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="si">%s</span><span class="s1">: &quot;</span><span class="si">%s</span><span class="s1">&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>
<span class="c"># yank spurious empty lines</span>
<span class="c1"># yank spurious empty lines</span>
<span class="k">if</span> <span class="n">line</span><span class="p">:</span>
<span class="n">last_line_empty</span> <span class="o">=</span> <span class="bp">False</span>
<span class="k">else</span><span class="p">:</span>
@ -269,30 +270,30 @@
<span class="k">continue</span>
<span class="n">last_line_empty</span> <span class="o">=</span> <span class="bp">True</span>
<span class="n">split_line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s">&#39;:&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<span class="n">split_line</span> <span class="o">=</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s1">&#39;:&#39;</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
<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">clear</span><span class="p">:</span>
<span class="c"># clear existing property</span>
<span class="c1"># clear existing property</span>
<span class="k">continue</span>
<span class="c"># edit existing property</span>
<span class="c1"># edit existing property</span>
<span class="n">line</span> <span class="o">=</span> <span class="n">new_line</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="c1"># 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="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">write_data</span> <span class="o">=</span> <span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#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>
<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="sync_read_file"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.sync_read_file">[docs]</a><span class="k">def</span> <span class="nf">sync_read_file</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s">&#39;r&#39;</span><span class="p">):</span>
<div class="viewcode-block" id="sync_read_file"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.sync_read_file">[docs]</a><span class="k">def</span> <span class="nf">sync_read_file</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">mode</span><span class="o">=</span><span class="s1">&#39;r&#39;</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;synchronously read file</span>
<span class="sd"> return file data</span>
@ -306,7 +307,7 @@
<span class="k">return</span> <span class="n">data</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>
<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="s1">&#39;w&#39;</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;synchronously write file&quot;&quot;&quot;</span>
<span class="k">try</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>
@ -330,27 +331,48 @@
<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="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="s1">&#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="c1"># nosec</span>
<span class="c1"># py3 will raise if text is already a string</span>
<span class="k">pass</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">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>
<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="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="s1">&#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="c1"># nosec</span>
<span class="c1"># py3 will raise if text is already a string</span>
<span class="n">new_obj</span> <span class="o">=</span> <span class="n">obj_to_decode</span>
<span class="k">return</span> <span class="n">new_obj</span>
</div>
<div class="viewcode-block" id="is_string_true"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.is_string_true">[docs]</a><span class="k">def</span> <span class="nf">is_string_true</span><span class="p">(</span><span class="n">string</span><span class="p">):</span>
<span class="sd">&quot;&quot;&quot;Return boolean True if string represents a true value (None is False)&quot;&quot;&quot;</span>
<span class="n">true_values</span> <span class="o">=</span> <span class="p">[</span><span class="s">&#39;yes&#39;</span><span class="p">,</span> <span class="s">&#39;true&#39;</span><span class="p">]</span>
<span class="n">true_values</span> <span class="o">=</span> <span class="p">[</span><span class="s1">&#39;yes&#39;</span><span class="p">,</span> <span class="s1">&#39;true&#39;</span><span class="p">]</span>
<span class="k">if</span> <span class="n">string</span> <span class="ow">is</span> <span class="ow">not</span> <span class="bp">None</span> <span class="ow">and</span> <span class="n">string</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="ow">in</span> <span class="n">true_values</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">True</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">return</span> <span class="bp">False</span></div>
<span class="k">return</span> <span class="bp">False</span>
</div>
<div class="viewcode-block" id="check_arg"><a class="viewcode-back" href="../../../kollacli.common.html#kollacli.common.utils.check_arg">[docs]</a><span class="k">def</span> <span class="nf">check_arg</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="n">param_name</span><span class="p">,</span> <span class="n">expected_type</span><span class="p">,</span> <span class="n">none_ok</span><span class="o">=</span><span class="bp">False</span><span class="p">,</span> <span class="n">empty_ok</span><span class="o">=</span><span class="bp">False</span><span class="p">):</span>
<span class="k">if</span> <span class="n">param</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
<span class="k">if</span> <span class="n">none_ok</span><span class="p">:</span>
<span class="k">return</span>
<span class="c1"># None arg</span>
<span class="k">raise</span> <span class="n">MissingArgument</span><span class="p">(</span><span class="n">param_name</span><span class="p">)</span>
<span class="k">if</span> <span class="p">((</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="ow">or</span>
<span class="nb">isinstance</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span> <span class="ow">or</span>
<span class="nb">isinstance</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="nb">list</span><span class="p">))</span> <span class="ow">and</span>
<span class="ow">not</span> <span class="n">param</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">empty_ok</span><span class="p">):</span>
<span class="c1"># empty string, dict or list</span>
<span class="k">raise</span> <span class="n">MissingArgument</span><span class="p">(</span><span class="n">param_name</span><span class="p">)</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">param</span><span class="p">,</span> <span class="n">expected_type</span><span class="p">):</span>
<span class="c1"># wrong type</span>
<span class="k">raise</span> <span class="n">InvalidArgument</span><span class="p">(</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;{name} ({param}) is not a {type}&#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="n">param_name</span><span class="p">,</span> <span class="n">param</span><span class="o">=</span><span class="n">param</span><span class="p">,</span>
<span class="nb">type</span><span class="o">=</span><span class="n">expected_type</span><span class="p">))</span></div>
</pre></div>
</div>
@ -384,7 +406,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../../index.html">kollacli 1.0.0.dev379 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.exceptions &mdash; kollacli 1.0.0.dev363 documentation</title>
<title>kollacli.exceptions &mdash; kollacli 1.0.0.dev379 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.dev363',
VERSION: '1.0.0.dev379',
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.dev363 documentation" href="../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev363 documentation</a> &raquo;</li>
<li><a href="../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -101,7 +101,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.dev363 documentation</a> &raquo;</li>
<li><a href="../../index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.shell &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="../../index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../index.html" accesskey="U">Module code</a> &raquo;</li>
</ul>
</div>
@ -47,19 +47,19 @@
<div class="body">
<h1>Source code for kollacli.shell</h1><div class="highlight"><pre>
<span class="c"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c">#</span>
<span class="c"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c"># not use this file except in compliance with the License. You may obtain</span>
<span class="c"># a copy of the License at</span>
<span class="c">#</span>
<span class="c"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c">#</span>
<span class="c"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<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></span><span class="c1"># Copyright(c) 2016, Oracle and/or its affiliates. All Rights Reserved.</span>
<span class="c1">#</span>
<span class="c1"># Licensed under the Apache License, Version 2.0 (the &quot;License&quot;); you may</span>
<span class="c1"># not use this file except in compliance with the License. You may obtain</span>
<span class="c1"># a copy of the License at</span>
<span class="c1">#</span>
<span class="c1"># http://www.apache.org/licenses/LICENSE-2.0</span>
<span class="c1">#</span>
<span class="c1"># Unless required by applicable law or agreed to in writing, software</span>
<span class="c1"># distributed under the License is distributed on an &quot;AS IS&quot; BASIS, WITHOUT</span>
<span class="c1"># WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the</span>
<span class="c1"># License for the specific language governing permissions and limitations</span>
<span class="c1"># under the License.</span>
<span class="sd">&quot;&quot;&quot;Command-line interface to Kolla&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">logging</span>
<span class="kn">import</span> <span class="nn">os</span>
@ -82,37 +82,37 @@
<div class="viewcode-block" id="KollaCli"><a class="viewcode-back" href="../../kollacli.html#kollacli.shell.KollaCli">[docs]</a><span class="k">class</span> <span class="nc">KollaCli</span><span class="p">(</span><span class="n">App</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="nb">super</span><span class="p">(</span><span class="n">KollaCli</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">__init__</span><span class="p">(</span>
<span class="n">description</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s">&#39;Command-Line Client for OpenStack Kolla&#39;</span><span class="p">),</span>
<span class="n">version</span><span class="o">=</span><span class="s">&#39;0.2&#39;</span><span class="p">,</span>
<span class="n">command_manager</span><span class="o">=</span><span class="n">CommandManager</span><span class="p">(</span><span class="s">&#39;kolla.cli&#39;</span><span class="p">),</span>
<span class="n">description</span><span class="o">=</span><span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Command-Line Client for OpenStack Kolla&#39;</span><span class="p">),</span>
<span class="n">version</span><span class="o">=</span><span class="s1">&#39;0.2&#39;</span><span class="p">,</span>
<span class="n">command_manager</span><span class="o">=</span><span class="n">CommandManager</span><span class="p">(</span><span class="s1">&#39;kolla.cli&#39;</span><span class="p">),</span>
<span class="p">)</span>
<span class="n">inventory_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_kollacli_etc</span><span class="p">(),</span>
<span class="n">INVENTORY_PATH</span><span class="p">)</span>
<span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">isfile</span><span class="p">(</span><span class="n">inventory_path</span><span class="p">)</span> <span class="ow">is</span> <span class="bp">False</span><span class="p">:</span>
<span class="n">err_string</span> <span class="o">=</span> <span class="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span>
<span class="s">&#39;Required file ({inventory}) does not exist.</span><span class="se">\n</span><span class="s">&#39;</span>
<span class="s">&#39;Please re-install the kollacli to &#39;</span>
<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="s1">&#39;Required file ({inventory}) does not exist.</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="s1">&#39;Please re-install the kollacli to &#39;</span>
<span class="s1">&#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="c1"># 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="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="s1">&#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="n">u</span><span class="o">.</span><span class="n">_</span><span class="p">(</span><span class="s1">&#39;Permission denied to run the kollacli.</span><span class="se">\n</span><span class="s1">&#39;</span>
<span class="s1">&#39;Please add user to the kolla group and &#39;</span>
<span class="s1">&#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"># 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="c1"># 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="s1">&#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="c1"># 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>
@ -122,9 +122,9 @@
<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">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="s1">&#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">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="s1">&#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>
@ -137,7 +137,7 @@
<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>
</div>
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s2">&quot;__main__&quot;</span><span class="p">:</span>
<span class="n">sys</span><span class="o">.</span><span class="n">exit</span><span class="p">(</span><span class="n">main</span><span class="p">(</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>
</pre></div>
@ -172,7 +172,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.dev368 documentation</a> &raquo;</li>
<li><a href="../../index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
<li><a href="../index.html" >Module code</a> &raquo;</li>
</ul>
</div>

View File

@ -68,6 +68,14 @@ kollacli.api.password module
:undoc-members:
:show-inheritance:
kollacli.api.properties module
------------------------------
.. automodule:: kollacli.api.properties
:members:
:undoc-members:
:show-inheritance:
kollacli.api.service module
---------------------------
@ -76,6 +84,14 @@ kollacli.api.service module
:undoc-members:
:show-inheritance:
kollacli.api.support module
---------------------------
.. automodule:: kollacli.api.support
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------

View File

@ -4,8 +4,10 @@
.highlight .err { border: 1px solid #FF0000 } /* Error */
.highlight .k { color: #007020; font-weight: bold } /* Keyword */
.highlight .o { color: #666666 } /* Operator */
.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */
.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */
.highlight .cp { color: #007020 } /* Comment.Preproc */
.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */
.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */
.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #A00000 } /* Generic.Deleted */

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.dev368 documentation</title>
<title>Index &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -179,6 +179,10 @@
</dt>
<dt><a href="kollacli.common.html#kollacli.common.utils.check_arg">check_arg() (in module kollacli.common.utils)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Host.class_version">class_version (kollacli.common.inventory.Host attribute)</a>
</dt>
@ -363,7 +367,7 @@
</dt>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_childnames">get_childnames() (kollacli.api.service.ServiceApi.Service method)</a>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_children">get_children() (kollacli.api.service.ServiceApi.Service method)</a>
</dt>
@ -405,19 +409,11 @@
</dt>
<dt><a href="kollacli.api.html#kollacli.api.host.HostApi.Host.get_groupnames">get_groupnames() (kollacli.api.host.HostApi.Host method)</a>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Inventory.get_groupnames">get_groupnames() (kollacli.common.inventory.Inventory method)</a>
</dt>
<dd><dl>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_groupnames">(kollacli.api.service.ServiceApi.Service method)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Inventory.get_groupnames">(kollacli.common.inventory.Inventory method)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Service.get_groupnames">(kollacli.common.inventory.Service method)</a>
</dt>
@ -427,9 +423,19 @@
</dl></dd>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Inventory.get_groups">get_groups() (kollacli.common.inventory.Inventory method)</a>
<dt><a href="kollacli.api.html#kollacli.api.host.HostApi.Host.get_groups">get_groups() (kollacli.api.host.HostApi.Host method)</a>
</dt>
<dd><dl>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_groups">(kollacli.api.service.ServiceApi.Service method)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Inventory.get_groups">(kollacli.common.inventory.Inventory method)</a>
</dt>
</dl></dd>
<dt><a href="kollacli.common.html#kollacli.common.inventory.Inventory.get_host">get_host() (kollacli.common.inventory.Inventory method)</a>
</dt>
@ -507,11 +513,11 @@
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.html#kollacli.common.inventory.SubService.get_parent_servicename">get_parent_servicename() (kollacli.common.inventory.SubService method)</a>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_parent">get_parent() (kollacli.api.service.ServiceApi.Service method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.service.ServiceApi.Service.get_parentname">get_parentname() (kollacli.api.service.ServiceApi.Service method)</a>
<dt><a href="kollacli.common.html#kollacli.common.inventory.SubService.get_parent_servicename">get_parent_servicename() (kollacli.common.inventory.SubService method)</a>
</dt>
@ -915,10 +921,18 @@
</dt>
<dt><a href="kollacli.api.html#module-kollacli.api.properties">kollacli.api.properties (module)</a>
</dt>
<dt><a href="kollacli.api.html#module-kollacli.api.service">kollacli.api.service (module)</a>
</dt>
<dt><a href="kollacli.api.html#module-kollacli.api.support">kollacli.api.support (module)</a>
</dt>
<dt><a href="kollacli.commands.html#module-kollacli.commands">kollacli.commands (module)</a>
</dt>
@ -938,12 +952,12 @@
<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>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.commands.html#module-kollacli.commands.property">kollacli.commands.property (module)</a>
</dt>
@ -1092,8 +1106,6 @@
<dt><a href="kollacli.commands.html#kollacli.commands.password.PasswordSet">PasswordSet (class in kollacli.commands.password)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.ansible.html#kollacli.common.ansible.playbook.AnsiblePlaybook.playbook_path">playbook_path (kollacli.common.ansible.playbook.AnsiblePlaybook attribute)</a>
</dt>
@ -1102,11 +1114,33 @@
<dt><a href="kollacli.common.ansible.html#kollacli.common.ansible.actions.precheck">precheck() (in module kollacli.common.ansible.actions)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.ansible.html#kollacli.common.ansible.playbook.AnsiblePlaybook.print_output">print_output (kollacli.common.ansible.playbook.AnsiblePlaybook attribute)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.properties.PropertyApi.property_clear">property_clear() (kollacli.api.properties.PropertyApi method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.properties.PropertyApi.property_get">property_get() (kollacli.api.properties.PropertyApi method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.properties.PropertyApi.property_set">property_set() (kollacli.api.properties.PropertyApi method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.properties.PropertyApi">PropertyApi (class in kollacli.api.properties)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.properties.PropertyApi.Property">PropertyApi.Property (class in kollacli.api.properties)</a>
</dt>
<dt><a href="kollacli.commands.html#kollacli.commands.property.PropertyClear">PropertyClear (class in kollacli.commands.property)</a>
</dt>
@ -1258,12 +1292,12 @@
<dt><a href="kollacli.common.html#kollacli.common.properties.AnsibleProperties.set_host_property">set_host_property() (kollacli.common.properties.AnsibleProperties method)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.html#kollacli.common.inventory.SubService.set_parent_servicename">set_parent_servicename() (kollacli.common.inventory.SubService method)</a>
</dt>
</dl></td>
<td style="width: 33%" valign="top"><dl>
<dt><a href="kollacli.common.html#kollacli.common.passwords.set_password">set_password() (in module kollacli.common.passwords)</a>
</dt>
@ -1323,6 +1357,14 @@
</dt>
<dt><a href="kollacli.api.html#kollacli.api.support.SupportApi.support_dump">support_dump() (kollacli.api.support.SupportApi method)</a>
</dt>
<dt><a href="kollacli.api.html#kollacli.api.support.SupportApi">SupportApi (class in kollacli.api.support)</a>
</dt>
<dt><a href="kollacli.common.html#kollacli.common.utils.sync_read_file">sync_read_file() (in module kollacli.common.utils)</a>
</dt>
@ -1567,7 +1609,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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>Welcome to kollaclis documentation! &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="#" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="#">kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="#">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.api package &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -60,6 +60,27 @@
<tt class="descname">async_deploy</tt><big>(</big><em>hostnames=[]</em>, <em>groupnames=[]</em>, <em>servicenames=[]</em>, <em>serial_flag=False</em>, <em>verbose_level=1</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/async.html#AsyncApi.async_deploy"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.async.AsyncApi.async_deploy" title="Permalink to this definition"></a></dt>
<dd><p>Deploy.</p>
<p>Deploy containers to hosts.</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 simple">
<li><strong>hostnames</strong> (<em>list of strings</em>) &#8211; hosts to deploy to. If empty, then deploy to all.</li>
<li><strong>groupnames</strong> (<em>list of strings</em>) &#8211; names of groups</li>
<li><strong>servicenames</strong> (<em>list of strings</em>) &#8211; names of services</li>
<li><strong>serial_flag</strong> (<em>boolean</em>) &#8211; if true, deploy will be done one host at a time</li>
<li><strong>verbose_level</strong> (<em>integer</em>) &#8211; the higher the number, the more verbose</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Job object</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Job</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="method">
@ -68,6 +89,26 @@
<dd><p>Destroy Hosts.</p>
<p>Stops and removes all kolla related docker containers on the
specified hosts.</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 simple">
<li><strong>hostnames</strong> (<em>list</em>) &#8211; host names</li>
<li><strong>destroy_type</strong> (<em>string</em>) &#8211; either &#8216;kill&#8217; or &#8216;stop&#8217;</li>
<li><strong>verbose_level</strong> (<em>integer</em>) &#8211; the higher the number, the more verbose</li>
<li><strong>include_data</strong> (<em>boolean</em>) &#8211; if true, destroy data containers too.</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">Job object</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">Job</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="method">
@ -76,13 +117,31 @@ specified hosts.</p>
<dd><p>Check pre-deployment configuration of hosts.</p>
<p>Check if host is ready for a new deployment. This will fail if
any of the hosts are not configured correctly or if they have
already been deployed to.</p>
already been deployed to.
:param hostnames: host names
:type hostnames: list
:param verbose_level: the higher the number, the more verbose
:type verbose_level: integer
:return: Job object
:rtype: Job</p>
</dd></dl>
<dl class="method">
<dt id="kollacli.api.async.AsyncApi.async_upgrade">
<tt class="descname">async_upgrade</tt><big>(</big><em>verbose_level=1</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/async.html#AsyncApi.async_upgrade"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.async.AsyncApi.async_upgrade" title="Permalink to this definition"></a></dt>
<dd><p>Upgrade.</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"><strong>verbose_level</strong> (<em>integer</em>) &#8211; the higher the number, the more verbose</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">Job object</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">Job</td>
</tr>
</tbody>
</table>
<p>Upgrade containers to new version specified by the property
&#8220;openstack_release.&#8221;</p>
</dd></dl>
@ -95,7 +154,7 @@ already been deployed to.</p>
<dl class="class">
<dt id="kollacli.api.client.ClientApi">
<em class="property">class </em><tt class="descclassname">kollacli.api.client.</tt><tt class="descname">ClientApi</tt><a class="reference internal" href="_modules/kollacli/api/client.html#ClientApi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.client.ClientApi" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#kollacli.api.async.AsyncApi" title="kollacli.api.async.AsyncApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.async.AsyncApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.deploy.DeployApi" title="kollacli.api.deploy.DeployApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.deploy.DeployApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.group.GroupApi" title="kollacli.api.group.GroupApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.group.GroupApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.host.HostApi" title="kollacli.api.host.HostApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.host.HostApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.password.PasswordApi" title="kollacli.api.password.PasswordApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.password.PasswordApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.service.ServiceApi" title="kollacli.api.service.ServiceApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.service.ServiceApi</span></tt></a></p>
<dd><p>Bases: <a class="reference internal" href="#kollacli.api.async.AsyncApi" title="kollacli.api.async.AsyncApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.async.AsyncApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.deploy.DeployApi" title="kollacli.api.deploy.DeployApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.deploy.DeployApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.group.GroupApi" title="kollacli.api.group.GroupApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.group.GroupApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.host.HostApi" title="kollacli.api.host.HostApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.host.HostApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.password.PasswordApi" title="kollacli.api.password.PasswordApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.password.PasswordApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.properties.PropertyApi" title="kollacli.api.properties.PropertyApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.properties.PropertyApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.service.ServiceApi" title="kollacli.api.service.ServiceApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.service.ServiceApi</span></tt></a>, <a class="reference internal" href="#kollacli.api.support.SupportApi" title="kollacli.api.support.SupportApi"><tt class="xref py py-class docutils literal"><span class="pre">kollacli.api.support.SupportApi</span></tt></a></p>
<dl class="method">
<dt id="kollacli.api.client.ClientApi.base_call">
<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>
@ -381,8 +440,8 @@ Remote means that the deployment is executed via ssh.</p>
<dd><p>Bases: <tt class="xref py py-class docutils literal"><span class="pre">object</span></tt></p>
<p>Host</p>
<dl class="method">
<dt id="kollacli.api.host.HostApi.Host.get_groupnames">
<tt class="descname">get_groupnames</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/host.html#HostApi.Host.get_groupnames"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.host.HostApi.Host.get_groupnames" title="Permalink to this definition"></a></dt>
<dt id="kollacli.api.host.HostApi.Host.get_groups">
<tt class="descname">get_groups</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/host.html#HostApi.Host.get_groups"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.host.HostApi.Host.get_groups" title="Permalink to this definition"></a></dt>
<dd><p>Get names of the groups associated with this host</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@ -662,6 +721,104 @@ The uname entry is optional.</p>
</dd></dl>
</div>
<div class="section" id="module-kollacli.api.properties">
<span id="kollacli-api-properties-module"></span><h2>kollacli.api.properties module<a class="headerlink" href="#module-kollacli.api.properties" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="kollacli.api.properties.PropertyApi">
<em class="property">class </em><tt class="descclassname">kollacli.api.properties.</tt><tt class="descname">PropertyApi</tt><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi" 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="class">
<dt id="kollacli.api.properties.PropertyApi.Property">
<em class="property">class </em><tt class="descname">Property</tt><big>(</big><em>ansible_property</em>, <em>override_flags</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi.Property"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi.Property" 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>Property</p>
<dl class="docutils">
<dt>Members:</dt>
<dd><ul class="first last simple">
<li>name (str): key</li>
<li>value (str): value</li>
<li>file_name (str): name of file property is from</li>
<li>overrides (bool): does the property override some other value</li>
<li>orig_value (str): the value which is overridden or None</li>
<li>target (str): group or host name for group or host properties</li>
<li>prop_type (str): one of &#8216;global&#8217;, &#8216;group&#8217; or &#8216;host&#8217;</li>
<li>ovr_global (bool): true if property is overridden at global level</li>
<li>ovr_group (bool): true if property is overridden at group level</li>
<li>ovr_host (bool): true if property is overridden at host level</li>
</ul>
</dd>
</dl>
</dd></dl>
<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>
<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_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>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>
<dl class="method">
<dt id="kollacli.api.properties.PropertyApi.property_get">
<tt class="descclassname">PropertyApi.</tt><tt class="descname">property_get</tt><big>(</big><em>property_type='global'</em>, <em>get_set=None</em><big>)</big><a class="reference internal" href="_modules/kollacli/api/properties.html#PropertyApi.property_get"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.properties.PropertyApi.property_get" title="Permalink to this definition"></a></dt>
<dd><p>Returns a list of Property objects</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 simple">
<li><strong>property_type</strong> (<em>string</em>) &#8211; one of &#8216;global&#8217;, &#8216;group&#8217;, or &#8216;host&#8217;</li>
<li><strong>get_set</strong> (<em>list of strings</em>) &#8211; optional list of hosts or groups to be used when
getting group or host related property lists</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">properties</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last">list of Property objects</p>
</td>
</tr>
</tbody>
</table>
</dd></dl>
<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>
<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_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>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="module-kollacli.api.service">
<span id="kollacli-api-service-module"></span><h2>kollacli.api.service module<a class="headerlink" href="#module-kollacli.api.service" title="Permalink to this headline"></a></h2>
@ -707,8 +864,8 @@ represented:</p>
</li>
</ul>
<dl class="method">
<dt id="kollacli.api.service.ServiceApi.Service.get_childnames">
<tt class="descname">get_childnames</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/service.html#ServiceApi.Service.get_childnames"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.service.ServiceApi.Service.get_childnames" title="Permalink to this definition"></a></dt>
<dt id="kollacli.api.service.ServiceApi.Service.get_children">
<tt class="descname">get_children</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/service.html#ServiceApi.Service.get_children"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.service.ServiceApi.Service.get_children" title="Permalink to this definition"></a></dt>
<dd><p>Get names of the child services associated with this service</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@ -723,8 +880,8 @@ represented:</p>
</dd></dl>
<dl class="method">
<dt id="kollacli.api.service.ServiceApi.Service.get_groupnames">
<tt class="descname">get_groupnames</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/service.html#ServiceApi.Service.get_groupnames"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.service.ServiceApi.Service.get_groupnames" title="Permalink to this definition"></a></dt>
<dt id="kollacli.api.service.ServiceApi.Service.get_groups">
<tt class="descname">get_groups</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/service.html#ServiceApi.Service.get_groups"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.service.ServiceApi.Service.get_groups" title="Permalink to this definition"></a></dt>
<dd><p>Get names of the groups associated with this service</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
@ -755,9 +912,9 @@ represented:</p>
</dd></dl>
<dl class="method">
<dt id="kollacli.api.service.ServiceApi.Service.get_parentname">
<tt class="descname">get_parentname</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/service.html#ServiceApi.Service.get_parentname"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.service.ServiceApi.Service.get_parentname" title="Permalink to this definition"></a></dt>
<dd><p>Get name or parent service</p>
<dt id="kollacli.api.service.ServiceApi.Service.get_parent">
<tt class="descname">get_parent</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/service.html#ServiceApi.Service.get_parent"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.service.ServiceApi.Service.get_parent" title="Permalink to this definition"></a></dt>
<dd><p>Get name of parent service</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
@ -808,6 +965,34 @@ represented:</p>
</dd></dl>
</div>
<div class="section" id="module-kollacli.api.support">
<span id="kollacli-api-support-module"></span><h2>kollacli.api.support module<a class="headerlink" href="#module-kollacli.api.support" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="kollacli.api.support.SupportApi">
<em class="property">class </em><tt class="descclassname">kollacli.api.support.</tt><tt class="descname">SupportApi</tt><a class="reference internal" href="_modules/kollacli/api/support.html#SupportApi"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.support.SupportApi" 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="method">
<dt id="kollacli.api.support.SupportApi.support_dump">
<tt class="descname">support_dump</tt><big>(</big><big>)</big><a class="reference internal" href="_modules/kollacli/api/support.html#SupportApi.support_dump"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.api.support.SupportApi.support_dump" title="Permalink to this definition"></a></dt>
<dd><p>Dumps configuration data for debugging.</p>
<p>Dumps most files in /etc/kolla and /usr/share/kolla into a
tar file so be given to support / development to help with
debugging problems.</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">Returns:</th><td class="field-body">path to dump file</td>
</tr>
<tr class="field-even field"><th class="field-name">Return type:</th><td class="field-body">string</td>
</tr>
</tbody>
</table>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="module-kollacli.api">
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-kollacli.api" title="Permalink to this headline"></a></h2>
@ -832,7 +1017,9 @@ represented:</p>
<li><a class="reference internal" href="#module-kollacli.api.host">kollacli.api.host module</a></li>
<li><a class="reference internal" href="#module-kollacli.api.job">kollacli.api.job module</a></li>
<li><a class="reference internal" href="#module-kollacli.api.password">kollacli.api.password module</a></li>
<li><a class="reference internal" href="#module-kollacli.api.properties">kollacli.api.properties module</a></li>
<li><a class="reference internal" href="#module-kollacli.api.service">kollacli.api.service module</a></li>
<li><a class="reference internal" href="#module-kollacli.api.support">kollacli.api.support module</a></li>
<li><a class="reference internal" href="#module-kollacli.api">Module contents</a></li>
</ul>
</li>
@ -869,7 +1056,7 @@ represented:</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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.commands package &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common.ansible package &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -160,7 +160,7 @@ which can either be &#8216;stop&#8217; or &#8216;kill&#8217;.</p>
<dl class="attribute">
<dt id="kollacli.common.ansible.playbook.AnsiblePlaybook.inventory">
<tt class="descname">inventory</tt><em class="property"> = &lt;kollacli.common.inventory.Inventory object at 0x396d710&gt;</em><a class="headerlink" href="#kollacli.common.ansible.playbook.AnsiblePlaybook.inventory" title="Permalink to this definition"></a></dt>
<tt class="descname">inventory</tt><em class="property"> = &lt;kollacli.common.inventory.Inventory object at 0x430e490&gt;</em><a class="headerlink" href="#kollacli.common.ansible.playbook.AnsiblePlaybook.inventory" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="attribute">
@ -250,7 +250,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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli.common package &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -559,7 +559,7 @@ If it doesn&#8217;t exist, a new password will be added.</p>
<span id="kollacli-common-properties-module"></span><h2>kollacli.common.properties module<a class="headerlink" href="#module-kollacli.common.properties" title="Permalink to this headline"></a></h2>
<dl class="class">
<dt id="kollacli.common.properties.AnsibleProperties">
<em class="property">class </em><tt class="descclassname">kollacli.common.properties.</tt><tt class="descname">AnsibleProperties</tt><big>(</big><em>load_globals=True</em>, <em>load_groups=True</em>, <em>load_hosts=True</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties" title="Permalink to this definition"></a></dt>
<em class="property">class </em><tt class="descclassname">kollacli.common.properties.</tt><tt class="descname">AnsibleProperties</tt><a class="reference internal" href="_modules/kollacli/common/properties.html#AnsibleProperties"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.properties.AnsibleProperties" 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="method">
<dt id="kollacli.common.properties.AnsibleProperties.clear_group_property">
@ -687,6 +687,11 @@ If not clear, and key is not found, the new property will be appended.
If not clear, and key is found, edit property in place.</p>
</dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.check_arg">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">check_arg</tt><big>(</big><em>param</em>, <em>param_name</em>, <em>expected_type</em>, <em>none_ok=False</em>, <em>empty_ok=False</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#check_arg"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.check_arg" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="function">
<dt id="kollacli.common.utils.convert_to_unicode">
<tt class="descclassname">kollacli.common.utils.</tt><tt class="descname">convert_to_unicode</tt><big>(</big><em>the_string</em><big>)</big><a class="reference internal" href="_modules/kollacli/common/utils.html#convert_to_unicode"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#kollacli.common.utils.convert_to_unicode" title="Permalink to this definition"></a></dt>
@ -866,7 +871,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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli package &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -60,7 +60,9 @@
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.host">kollacli.api.host module</a></li>
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.job">kollacli.api.job module</a></li>
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.password">kollacli.api.password module</a></li>
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.properties">kollacli.api.properties module</a></li>
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.service">kollacli.api.service module</a></li>
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.support">kollacli.api.support module</a></li>
<li class="toctree-l2"><a class="reference internal" href="kollacli.api.html#module-kollacli.api">Module contents</a></li>
</ul>
</li>
@ -183,7 +185,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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>kollacli &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -60,7 +60,9 @@
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.host">kollacli.api.host module</a></li>
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.job">kollacli.api.job module</a></li>
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.password">kollacli.api.password module</a></li>
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.properties">kollacli.api.properties module</a></li>
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.service">kollacli.api.service module</a></li>
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api.support">kollacli.api.support module</a></li>
<li class="toctree-l4"><a class="reference internal" href="kollacli.api.html#module-kollacli.api">Module contents</a></li>
</ul>
</li>
@ -139,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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>Python Module Index &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
@ -109,11 +109,21 @@
<td>&nbsp;&nbsp;&nbsp;
<a href="kollacli.api.html#module-kollacli.api.password"><tt class="xref">kollacli.api.password</tt></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&nbsp;&nbsp;&nbsp;
<a href="kollacli.api.html#module-kollacli.api.properties"><tt class="xref">kollacli.api.properties</tt></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&nbsp;&nbsp;&nbsp;
<a href="kollacli.api.html#module-kollacli.api.service"><tt class="xref">kollacli.api.service</tt></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&nbsp;&nbsp;&nbsp;
<a href="kollacli.api.html#module-kollacli.api.support"><tt class="xref">kollacli.api.support</tt></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&nbsp;&nbsp;&nbsp;
@ -263,7 +273,7 @@
<li class="right" >
<a href="#" title="Python Module Index"
>modules</a> |</li>
<li><a href="index.html">kollacli 1.0.0.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</title>
<title>Search &mdash; kollacli 1.0.0.dev379 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.dev368',
VERSION: '1.0.0.dev379',
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.dev368 documentation" href="index.html" />
<link rel="top" title="kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 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.dev368 documentation</a> &raquo;</li>
<li><a href="index.html">kollacli 1.0.0.dev379 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">

File diff suppressed because one or more lines are too long

View File

@ -68,6 +68,14 @@ kollacli.api.password module
:undoc-members:
:show-inheritance:
kollacli.api.properties module
------------------------------
.. automodule:: kollacli.api.properties
:members:
:undoc-members:
:show-inheritance:
kollacli.api.service module
---------------------------
@ -76,6 +84,14 @@ kollacli.api.service module
:undoc-members:
:show-inheritance:
kollacli.api.support module
---------------------------
.. automodule:: kollacli.api.support
:members:
:undoc-members:
:show-inheritance:
Module contents
---------------

View File

@ -31,7 +31,20 @@ PROP_TYPES = [GLOBAL_TYPE, GROUP_TYPE, HOST_TYPE]
class PropertyApi(object):
class Property(object):
"""Property
Members:
- name (str): key
- value (str): value
- file_name (str): name of file property is from
- overrides (bool): does the property override some other value
- orig_value (str): the value which is overridden or None
- target (str): group or host name for group or host properties
- prop_type (str): one of 'global', 'group' or 'host'
- ovr_global (bool): true if property is overridden at global level
- ovr_group (bool): true if property is overridden at group level
- ovr_host (bool): true if property is overridden at host level
"""
def __init__(self, ansible_property, override_flags):
self.name = ansible_property.name
self.value = ansible_property.value