Skip to content
This repository was archived by the owner on Nov 15, 2024. It is now read-only.

Commit 8bdce76

Browse files
committed
add release docs
1 parent ab5c10e commit 8bdce76

4 files changed

Lines changed: 962 additions & 0 deletions

File tree

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
2+
3+
<!DOCTYPE html>
4+
<html class="writer-html5" lang="en" >
5+
<head>
6+
<meta charset="utf-8">
7+
8+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
9+
10+
<title>netnir.plugins.netmiko &mdash; netnir 0.0.17 0.0.17 documentation</title>
11+
12+
13+
14+
<link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
15+
<link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
16+
17+
18+
19+
20+
21+
22+
23+
<!--[if lt IE 9]>
24+
<script src="../../../../_static/js/html5shiv.min.js"></script>
25+
<![endif]-->
26+
27+
28+
<script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
29+
<script src="../../../../_static/jquery.js"></script>
30+
<script src="../../../../_static/underscore.js"></script>
31+
<script src="../../../../_static/doctools.js"></script>
32+
<script src="../../../../_static/language_data.js"></script>
33+
34+
<script type="text/javascript" src="../../../../_static/js/theme.js"></script>
35+
36+
37+
<link rel="index" title="Index" href="../../../../genindex/" />
38+
<link rel="search" title="Search" href="../../../../search/" />
39+
</head>
40+
41+
<body class="wy-body-for-nav">
42+
43+
44+
<div class="wy-grid-for-nav">
45+
46+
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
47+
<div class="wy-side-scroll">
48+
<div class="wy-side-nav-search" >
49+
50+
51+
52+
<a href="../../../../" class="icon icon-home" alt="Documentation Home"> netnir 0.0.17
53+
54+
55+
56+
</a>
57+
58+
59+
60+
61+
62+
63+
64+
<div role="search">
65+
<form id="rtd-search-form" class="wy-form" action="../../../../search/" method="get">
66+
<input type="text" name="q" placeholder="Search docs" />
67+
<input type="hidden" name="check_keywords" value="yes" />
68+
<input type="hidden" name="area" value="default" />
69+
</form>
70+
</div>
71+
72+
73+
</div>
74+
75+
76+
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
77+
78+
79+
80+
81+
82+
83+
<p class="caption"><span class="caption-text">Contents:</span></p>
84+
<ul>
85+
<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial/">netnir at a glance</a></li>
86+
<li class="toctree-l1"><a class="reference internal" href="../../../../netnir/">code documentation</a></li>
87+
</ul>
88+
89+
90+
91+
</div>
92+
93+
</div>
94+
</nav>
95+
96+
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
97+
98+
99+
<nav class="wy-nav-top" aria-label="top navigation">
100+
101+
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
102+
<a href="../../../../">netnir 0.0.17</a>
103+
104+
</nav>
105+
106+
107+
<div class="wy-nav-content">
108+
109+
<div class="rst-content">
110+
111+
112+
113+
114+
115+
116+
117+
118+
119+
120+
121+
122+
123+
124+
125+
126+
127+
<div role="navigation" aria-label="breadcrumbs navigation">
128+
129+
<ul class="wy-breadcrumbs">
130+
131+
<li><a href="../../../../" class="icon icon-home"></a> &raquo;</li>
132+
133+
<li><a href="../../../">Module code</a> &raquo;</li>
134+
135+
<li>netnir.plugins.netmiko</li>
136+
137+
138+
<li class="wy-breadcrumbs-aside">
139+
140+
</li>
141+
142+
</ul>
143+
144+
145+
<hr/>
146+
</div>
147+
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
148+
<div itemprop="articleBody">
149+
150+
<h1>Source code for netnir.plugins.netmiko</h1><div class="highlight"><pre>
151+
<span></span><span class="kn">from</span> <span class="nn">nornir.core.task</span> <span class="kn">import</span> <span class="n">Task</span><span class="p">,</span> <span class="n">Result</span>
152+
<span class="kn">from</span> <span class="nn">netmiko</span> <span class="kn">import</span> <span class="n">ConnectHandler</span>
153+
<span class="kn">from</span> <span class="nn">netnir.helpers</span> <span class="kn">import</span> <span class="n">device_mapper</span>
154+
155+
156+
<div class="viewcode-block" id="netmiko_send_commands"><a class="viewcode-back" href="../../../../netnir/netnir.plugins/#netnir.plugins.netmiko.netmiko_send_commands">[docs]</a><span class="k">def</span> <span class="nf">netmiko_send_commands</span><span class="p">(</span><span class="n">task</span><span class="p">:</span> <span class="n">Task</span><span class="p">,</span> <span class="n">commands</span><span class="p">:</span> <span class="nb">list</span><span class="p">())</span> <span class="o">-&gt;</span> <span class="n">Result</span><span class="p">:</span>
157+
<span class="sd">&quot;&quot;&quot;send show commands to a device via netmiko</span>
158+
159+
<span class="sd"> :param task: nornir Task object</span>
160+
<span class="sd"> :param commands: a list of commands to execute</span>
161+
162+
<span class="sd"> :returns: nornir Result object</span>
163+
<span class="sd"> &quot;&quot;&quot;</span>
164+
<span class="n">device_params</span> <span class="o">=</span> <span class="p">{</span>
165+
<span class="s2">&quot;host&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">hostname</span><span class="p">,</span>
166+
<span class="s2">&quot;device_type&quot;</span><span class="p">:</span> <span class="n">device_mapper</span><span class="p">(</span><span class="n">os_type</span><span class="o">=</span><span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">platform</span><span class="p">,</span> <span class="n">proto</span><span class="o">=</span><span class="s2">&quot;netmiko&quot;</span><span class="p">),</span>
167+
<span class="s2">&quot;port&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">port</span><span class="p">,</span>
168+
<span class="s2">&quot;username&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">username</span><span class="p">,</span>
169+
<span class="s2">&quot;password&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">password</span><span class="p">,</span>
170+
<span class="s2">&quot;secret&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">connection_options</span><span class="p">[</span><span class="s2">&quot;netmiko&quot;</span><span class="p">][</span><span class="s2">&quot;extras&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;secret&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span>
171+
<span class="p">}</span>
172+
173+
<span class="k">with</span> <span class="n">ConnectHandler</span><span class="p">(</span><span class="o">**</span><span class="n">device_params</span><span class="p">)</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span>
174+
<span class="n">output</span> <span class="o">=</span> <span class="nb">str</span><span class="p">()</span>
175+
176+
<span class="k">for</span> <span class="n">command</span> <span class="ow">in</span> <span class="n">commands</span><span class="p">:</span>
177+
<span class="n">output</span> <span class="o">+=</span> <span class="n">conn</span><span class="o">.</span><span class="n">send_command</span><span class="p">(</span><span class="n">command</span><span class="p">)</span>
178+
179+
<span class="k">return</span> <span class="n">Result</span><span class="p">(</span><span class="n">host</span><span class="o">=</span><span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="n">result</span><span class="o">=</span><span class="n">output</span><span class="p">)</span></div>
180+
181+
182+
<div class="viewcode-block" id="netmiko_send_config"><a class="viewcode-back" href="../../../../netnir/netnir.plugins/#netnir.plugins.netmiko.netmiko_send_config">[docs]</a><span class="k">def</span> <span class="nf">netmiko_send_config</span><span class="p">(</span><span class="n">task</span><span class="p">:</span> <span class="n">Task</span><span class="p">,</span> <span class="n">commands</span><span class="p">:</span> <span class="nb">list</span><span class="p">())</span> <span class="o">-&gt;</span> <span class="n">Result</span><span class="p">:</span>
183+
<span class="sd">&quot;&quot;&quot;execute configuration changes on a device via netmiko</span>
184+
185+
<span class="sd"> :param task: nornir Task object</span>
186+
<span class="sd"> :param commands: a list of commands to execute</span>
187+
188+
<span class="sd"> :returns: nornir Result object</span>
189+
<span class="sd"> &quot;&quot;&quot;</span>
190+
<span class="n">device_params</span> <span class="o">=</span> <span class="p">{</span>
191+
<span class="s2">&quot;host&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">hostname</span><span class="p">,</span>
192+
<span class="s2">&quot;device_type&quot;</span><span class="p">:</span> <span class="n">device_mapper</span><span class="p">(</span><span class="n">os_type</span><span class="o">=</span><span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">platform</span><span class="p">,</span> <span class="n">proto</span><span class="o">=</span><span class="s2">&quot;netmiko&quot;</span><span class="p">),</span>
193+
<span class="s2">&quot;port&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">port</span><span class="p">,</span>
194+
<span class="s2">&quot;username&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">username</span><span class="p">,</span>
195+
<span class="s2">&quot;password&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">password</span><span class="p">,</span>
196+
<span class="s2">&quot;secret&quot;</span><span class="p">:</span> <span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="o">.</span><span class="n">connection_options</span><span class="p">[</span><span class="s2">&quot;netmiko&quot;</span><span class="p">][</span><span class="s2">&quot;extras&quot;</span><span class="p">]</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">&quot;secret&quot;</span><span class="p">,</span> <span class="kc">None</span><span class="p">),</span>
197+
<span class="p">}</span>
198+
199+
<span class="k">with</span> <span class="n">ConnectHandler</span><span class="p">(</span><span class="o">**</span><span class="n">device_params</span><span class="p">)</span> <span class="k">as</span> <span class="n">conn</span><span class="p">:</span>
200+
<span class="n">output</span> <span class="o">=</span> <span class="n">conn</span><span class="o">.</span><span class="n">send_config_set</span><span class="p">(</span><span class="n">commands</span><span class="p">)</span>
201+
<span class="n">output</span> <span class="o">+=</span> <span class="n">conn</span><span class="o">.</span><span class="n">save</span><span class="p">()</span>
202+
203+
<span class="k">return</span> <span class="n">Result</span><span class="p">(</span><span class="n">task</span><span class="o">.</span><span class="n">host</span><span class="p">,</span> <span class="n">result</span><span class="o">=</span><span class="n">output</span><span class="p">)</span></div>
204+
</pre></div>
205+
206+
</div>
207+
208+
</div>
209+
<footer>
210+
211+
212+
<hr/>
213+
214+
<div role="contentinfo">
215+
<p>
216+
217+
&copy; Copyright 2020, James Williams
218+
219+
</p>
220+
</div>
221+
222+
223+
224+
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
225+
226+
<a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
227+
228+
provided by <a href="https://readthedocs.org">Read the Docs</a>.
229+
230+
</footer>
231+
232+
</div>
233+
</div>
234+
235+
</section>
236+
237+
</div>
238+
239+
240+
<script type="text/javascript">
241+
jQuery(function () {
242+
SphinxRtdTheme.Navigation.enable(true);
243+
});
244+
</script>
245+
246+
247+
248+
249+
250+
251+
</body>
252+
</html>

0 commit comments

Comments
 (0)