Statistics
| Branch: | Tag: | Revision:

root / docs / build / latex / ncclient.tex @ 216bb34c

History | View | Annotate | Download (56.3 kB)

1 216bb34c Shikhar Bhushan
% Generated by Sphinx.
2 216bb34c Shikhar Bhushan
\documentclass[a4paper,10pt,english]{manual}
3 216bb34c Shikhar Bhushan
\usepackage[utf8]{inputenc}
4 216bb34c Shikhar Bhushan
\usepackage[T1]{fontenc}
5 216bb34c Shikhar Bhushan
\usepackage{babel}
6 216bb34c Shikhar Bhushan
\usepackage{times}
7 216bb34c Shikhar Bhushan
\usepackage[Bjarne]{fncychap}
8 216bb34c Shikhar Bhushan
\usepackage{sphinx}
9 216bb34c Shikhar Bhushan
10 216bb34c Shikhar Bhushan
11 216bb34c Shikhar Bhushan
\title{NCClient Documentation}
12 216bb34c Shikhar Bhushan
\date{May 17, 2009}
13 216bb34c Shikhar Bhushan
\release{0.1.1a}
14 216bb34c Shikhar Bhushan
\author{Shikhar Bhushan}
15 216bb34c Shikhar Bhushan
\newcommand{\sphinxlogo}{}
16 216bb34c Shikhar Bhushan
\renewcommand{\releasename}{Release}
17 216bb34c Shikhar Bhushan
\makeindex
18 216bb34c Shikhar Bhushan
\makemodindex
19 216bb34c Shikhar Bhushan
\newcommand\PYGZat{@}
20 216bb34c Shikhar Bhushan
\newcommand\PYGZlb{[}
21 216bb34c Shikhar Bhushan
\newcommand\PYGZrb{]}
22 216bb34c Shikhar Bhushan
\newcommand\PYGaz[1]{\textcolor[rgb]{0.00,0.63,0.00}{#1}}
23 216bb34c Shikhar Bhushan
\newcommand\PYGax[1]{\textcolor[rgb]{0.84,0.33,0.22}{\textbf{#1}}}
24 216bb34c Shikhar Bhushan
\newcommand\PYGay[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
25 216bb34c Shikhar Bhushan
\newcommand\PYGar[1]{\textcolor[rgb]{0.73,0.38,0.84}{#1}}
26 216bb34c Shikhar Bhushan
\newcommand\PYGas[1]{\textcolor[rgb]{0.25,0.44,0.63}{\textit{#1}}}
27 216bb34c Shikhar Bhushan
\newcommand\PYGap[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
28 216bb34c Shikhar Bhushan
\newcommand\PYGaq[1]{\textcolor[rgb]{0.38,0.68,0.84}{#1}}
29 216bb34c Shikhar Bhushan
\newcommand\PYGav[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
30 216bb34c Shikhar Bhushan
\newcommand\PYGaw[1]{\textcolor[rgb]{0.13,0.50,0.31}{#1}}
31 216bb34c Shikhar Bhushan
\newcommand\PYGat[1]{\textcolor[rgb]{0.73,0.38,0.84}{#1}}
32 216bb34c Shikhar Bhushan
\newcommand\PYGau[1]{\textcolor[rgb]{0.32,0.47,0.09}{#1}}
33 216bb34c Shikhar Bhushan
\newcommand\PYGaj[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
34 216bb34c Shikhar Bhushan
\newcommand\PYGak[1]{\textcolor[rgb]{0.14,0.33,0.53}{#1}}
35 216bb34c Shikhar Bhushan
\newcommand\PYGah[1]{\textcolor[rgb]{0.00,0.13,0.44}{\textbf{#1}}}
36 216bb34c Shikhar Bhushan
\newcommand\PYGai[1]{\textcolor[rgb]{0.73,0.38,0.84}{#1}}
37 216bb34c Shikhar Bhushan
\newcommand\PYGan[1]{\textcolor[rgb]{0.13,0.50,0.31}{#1}}
38 216bb34c Shikhar Bhushan
\newcommand\PYGao[1]{\textcolor[rgb]{0.25,0.44,0.63}{\textbf{#1}}}
39 216bb34c Shikhar Bhushan
\newcommand\PYGal[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
40 216bb34c Shikhar Bhushan
\newcommand\PYGam[1]{\textbf{#1}}
41 216bb34c Shikhar Bhushan
\newcommand\PYGab[1]{\textit{#1}}
42 216bb34c Shikhar Bhushan
\newcommand\PYGac[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
43 216bb34c Shikhar Bhushan
\newcommand\PYGaa[1]{\textcolor[rgb]{0.19,0.19,0.19}{#1}}
44 216bb34c Shikhar Bhushan
\newcommand\PYGaf[1]{\textcolor[rgb]{0.25,0.50,0.56}{\textit{#1}}}
45 216bb34c Shikhar Bhushan
\newcommand\PYGag[1]{\textcolor[rgb]{0.13,0.50,0.31}{#1}}
46 216bb34c Shikhar Bhushan
\newcommand\PYGad[1]{\textcolor[rgb]{0.00,0.25,0.82}{#1}}
47 216bb34c Shikhar Bhushan
\newcommand\PYGae[1]{\textcolor[rgb]{0.13,0.50,0.31}{#1}}
48 216bb34c Shikhar Bhushan
\newcommand\PYGaZ[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
49 216bb34c Shikhar Bhushan
\newcommand\PYGbf[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
50 216bb34c Shikhar Bhushan
\newcommand\PYGaX[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
51 216bb34c Shikhar Bhushan
\newcommand\PYGaY[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
52 216bb34c Shikhar Bhushan
\newcommand\PYGbc[1]{\textcolor[rgb]{0.78,0.36,0.04}{#1}}
53 216bb34c Shikhar Bhushan
\newcommand\PYGbb[1]{\textcolor[rgb]{0.00,0.00,0.50}{\textbf{#1}}}
54 216bb34c Shikhar Bhushan
\newcommand\PYGba[1]{\textcolor[rgb]{0.02,0.16,0.45}{\textbf{#1}}}
55 216bb34c Shikhar Bhushan
\newcommand\PYGaR[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
56 216bb34c Shikhar Bhushan
\newcommand\PYGaS[1]{\textcolor[rgb]{0.13,0.50,0.31}{#1}}
57 216bb34c Shikhar Bhushan
\newcommand\PYGaP[1]{\textcolor[rgb]{0.05,0.52,0.71}{\textbf{#1}}}
58 216bb34c Shikhar Bhushan
\newcommand\PYGaQ[1]{\textcolor[rgb]{0.78,0.36,0.04}{\textbf{#1}}}
59 216bb34c Shikhar Bhushan
\newcommand\PYGaV[1]{\textcolor[rgb]{0.25,0.50,0.56}{\textit{#1}}}
60 216bb34c Shikhar Bhushan
\newcommand\PYGaW[1]{\textcolor[rgb]{0.05,0.52,0.71}{\textbf{#1}}}
61 216bb34c Shikhar Bhushan
\newcommand\PYGaT[1]{\textcolor[rgb]{0.73,0.38,0.84}{#1}}
62 216bb34c Shikhar Bhushan
\newcommand\PYGaU[1]{\textcolor[rgb]{0.13,0.50,0.31}{#1}}
63 216bb34c Shikhar Bhushan
\newcommand\PYGaJ[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
64 216bb34c Shikhar Bhushan
\newcommand\PYGaK[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
65 216bb34c Shikhar Bhushan
\newcommand\PYGaH[1]{\textcolor[rgb]{0.50,0.00,0.50}{\textbf{#1}}}
66 216bb34c Shikhar Bhushan
\newcommand\PYGaI[1]{\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{#1}}
67 216bb34c Shikhar Bhushan
\newcommand\PYGaN[1]{\textcolor[rgb]{0.73,0.73,0.73}{#1}}
68 216bb34c Shikhar Bhushan
\newcommand\PYGaO[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
69 216bb34c Shikhar Bhushan
\newcommand\PYGaL[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
70 216bb34c Shikhar Bhushan
\newcommand\PYGaM[1]{\colorbox[rgb]{1.00,0.94,0.94}{\textcolor[rgb]{0.25,0.50,0.56}{#1}}}
71 216bb34c Shikhar Bhushan
\newcommand\PYGaB[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
72 216bb34c Shikhar Bhushan
\newcommand\PYGaC[1]{\textcolor[rgb]{0.33,0.33,0.33}{\textbf{#1}}}
73 216bb34c Shikhar Bhushan
\newcommand\PYGaA[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
74 216bb34c Shikhar Bhushan
\newcommand\PYGaF[1]{\textcolor[rgb]{0.63,0.00,0.00}{#1}}
75 216bb34c Shikhar Bhushan
\newcommand\PYGaG[1]{\textcolor[rgb]{1.00,0.00,0.00}{#1}}
76 216bb34c Shikhar Bhushan
\newcommand\PYGaD[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
77 216bb34c Shikhar Bhushan
\newcommand\PYGaE[1]{\textcolor[rgb]{0.25,0.50,0.56}{\textit{#1}}}
78 216bb34c Shikhar Bhushan
\newcommand\PYGbg[1]{\textcolor[rgb]{0.44,0.63,0.82}{\textit{#1}}}
79 216bb34c Shikhar Bhushan
\newcommand\PYGbe[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
80 216bb34c Shikhar Bhushan
\newcommand\PYGbd[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
81 216bb34c Shikhar Bhushan
\newcommand\PYGbh[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
82 216bb34c Shikhar Bhushan
\begin{document}
83 216bb34c Shikhar Bhushan
84 216bb34c Shikhar Bhushan
\maketitle
85 216bb34c Shikhar Bhushan
\tableofcontents
86 216bb34c Shikhar Bhushan
87 216bb34c Shikhar Bhushan
88 216bb34c Shikhar Bhushan
89 216bb34c Shikhar Bhushan
\resetcurrentobjects
90 216bb34c Shikhar Bhushan
\hypertarget{--doc-intro}{}
91 216bb34c Shikhar Bhushan
92 216bb34c Shikhar Bhushan
\chapter{Introduction}
93 216bb34c Shikhar Bhushan
94 216bb34c Shikhar Bhushan
NCClient is a Python library for NETCONF clients. NETCONF is a network management protocol defined in \index{RFC!RFC 4741}\href{http://tools.ietf.org/html/rfc4741.html}{\textbf{RFC 4741}}. It is meant for Python 2.6+ (not Python 3 yet, though).
95 216bb34c Shikhar Bhushan
96 216bb34c Shikhar Bhushan
The features of NCClient include:
97 216bb34c Shikhar Bhushan
\begin{itemize}
98 216bb34c Shikhar Bhushan
\item {} 
99 216bb34c Shikhar Bhushan
Request pipelining.
100 216bb34c Shikhar Bhushan
101 216bb34c Shikhar Bhushan
\item {} 
102 216bb34c Shikhar Bhushan
(A)synchronous RPC requests.
103 216bb34c Shikhar Bhushan
104 216bb34c Shikhar Bhushan
\item {} 
105 216bb34c Shikhar Bhushan
Keeps XML out of the way unless really needed.
106 216bb34c Shikhar Bhushan
107 216bb34c Shikhar Bhushan
\item {} 
108 216bb34c Shikhar Bhushan
Supports all operations and capabilities defined in \index{RFC!RFC 4741}\href{http://tools.ietf.org/html/rfc4741.html}{\textbf{RFC 4741}}.
109 216bb34c Shikhar Bhushan
110 216bb34c Shikhar Bhushan
\item {} 
111 216bb34c Shikhar Bhushan
Extensible. New transport mappings and capabilities/operations can be easily added.
112 216bb34c Shikhar Bhushan
113 216bb34c Shikhar Bhushan
\end{itemize}
114 216bb34c Shikhar Bhushan
115 216bb34c Shikhar Bhushan
The best way to introduce is of course, through a simple code example:
116 216bb34c Shikhar Bhushan
117 216bb34c Shikhar Bhushan
\begin{Verbatim}[commandchars=@\[\]]
118 216bb34c Shikhar Bhushan
@PYGal[from] @PYGaW[ncclient] @PYGal[import] manager
119 216bb34c Shikhar Bhushan
120 216bb34c Shikhar Bhushan
@PYGay[with] manager@PYGbe[.]connect@_ssh(@PYGaB[']@PYGaB[host]@PYGaB['], @PYGaB[']@PYGaB[username]@PYGaB[']) @PYGay[as] m:
121 216bb34c Shikhar Bhushan
    @PYGay[assert](@PYGaB["]@PYGaB[:url]@PYGaB["] @PYGav[in] manager@PYGbe[.]server@_capabilities)
122 216bb34c Shikhar Bhushan
    @PYGay[with] m@PYGbe[.]locked(@PYGaB[']@PYGaB[running]@PYGaB[']):
123 216bb34c Shikhar Bhushan
        m@PYGbe[.]copy@_config(source@PYGbe[=]@PYGaB["]@PYGaB[running]@PYGaB["], target@PYGbe[=]@PYGaB["]@PYGaB[file://new@_checkpoint.conf]@PYGaB["])
124 216bb34c Shikhar Bhushan
        m@PYGbe[.]copy@_config(source@PYGbe[=]@PYGaB["]@PYGaB[file://old@_checkpoint.conf]@PYGaB["], target@PYGbe[=]@PYGaB["]@PYGaB[running]@PYGaB["])
125 216bb34c Shikhar Bhushan
\end{Verbatim}
126 216bb34c Shikhar Bhushan
127 216bb34c Shikhar Bhushan
It is recommended to use the high-level \code{Manager} API where possible. It exposes almost all of the functionality.
128 216bb34c Shikhar Bhushan
129 216bb34c Shikhar Bhushan
\resetcurrentobjects
130 216bb34c Shikhar Bhushan
\hypertarget{--doc-userdoc}{}
131 216bb34c Shikhar Bhushan
132 216bb34c Shikhar Bhushan
\hypertarget{userdoc}{}\chapter{User documentation}
133 216bb34c Shikhar Bhushan
134 216bb34c Shikhar Bhushan
\resetcurrentobjects
135 216bb34c Shikhar Bhushan
\hypertarget{--doc-userdoc/manager}{}
136 216bb34c Shikhar Bhushan
137 216bb34c Shikhar Bhushan
\section{\texttt{manager} module}
138 216bb34c Shikhar Bhushan
\index{ncclient.manager (module)}
139 216bb34c Shikhar Bhushan
\hypertarget{module-ncclient.manager}{}
140 216bb34c Shikhar Bhushan
\declaremodule[ncclient.manager]{}{ncclient.manager}
141 216bb34c Shikhar Bhushan
\modulesynopsis{}
142 216bb34c Shikhar Bhushan
143 216bb34c Shikhar Bhushan
\subsection{Dealing with RPC errors}
144 216bb34c Shikhar Bhushan
145 216bb34c Shikhar Bhushan
These constants define what \hyperlink{ncclient.manager.Manager}{\code{Manager}} does when an \emph{\textless{}rpc-error\textgreater{}} element is encountered in a reply.
146 216bb34c Shikhar Bhushan
\index{RAISE\_ALL (in module ncclient.manager)}
147 216bb34c Shikhar Bhushan
148 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.RAISE_ALL}{}\begin{datadesc}{RAISE\_ALL}
149 216bb34c Shikhar Bhushan
Raise all \hyperlink{ncclient.operations.rpc.RPCError}{\code{RPCError}}
150 216bb34c Shikhar Bhushan
\end{datadesc}
151 216bb34c Shikhar Bhushan
\index{RAISE\_ERR (in module ncclient.manager)}
152 216bb34c Shikhar Bhushan
153 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.RAISE_ERR}{}\begin{datadesc}{RAISE\_ERR}
154 216bb34c Shikhar Bhushan
Only raise when \emph{error-severity} is ``error'' i.e. no warnings
155 216bb34c Shikhar Bhushan
\end{datadesc}
156 216bb34c Shikhar Bhushan
\index{RAISE\_NONE (in module ncclient.manager)}
157 216bb34c Shikhar Bhushan
158 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.RAISE_NONE}{}\begin{datadesc}{RAISE\_NONE}
159 216bb34c Shikhar Bhushan
Don't raise any
160 216bb34c Shikhar Bhushan
\end{datadesc}
161 216bb34c Shikhar Bhushan
162 216bb34c Shikhar Bhushan
163 216bb34c Shikhar Bhushan
\subsection{Manager instances}
164 216bb34c Shikhar Bhushan
165 216bb34c Shikhar Bhushan
\hyperlink{ncclient.manager.Manager}{\code{Manager}} instances are created by the \hyperlink{ncclient.manager.connect}{\code{connect()}} family of factory functions. Currently only \hyperlink{ncclient.manager.connect_ssh}{\code{connect\_ssh()}} is available.
166 216bb34c Shikhar Bhushan
\index{connect() (in module ncclient.manager)}
167 216bb34c Shikhar Bhushan
168 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.connect}{}\begin{funcdesc}{connect}{*args, **kwds}
169 216bb34c Shikhar Bhushan
Same as \hyperlink{ncclient.manager.connect_ssh}{\code{connect\_ssh()}}
170 216bb34c Shikhar Bhushan
\end{funcdesc}
171 216bb34c Shikhar Bhushan
\index{connect\_ssh() (in module ncclient.manager)}
172 216bb34c Shikhar Bhushan
173 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.connect_ssh}{}\begin{funcdesc}{connect\_ssh}{*args, **kwds}
174 216bb34c Shikhar Bhushan
Connect to NETCONF server over SSH. See \hyperlink{ncclient.transport.SSHSession.connect}{\code{SSHSession.connect()}} for function signature.
175 216bb34c Shikhar Bhushan
\end{funcdesc}
176 216bb34c Shikhar Bhushan
\index{Manager (class in ncclient.manager)}
177 216bb34c Shikhar Bhushan
178 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager}{}\begin{classdesc}{Manager}{session}
179 216bb34c Shikhar Bhushan
API for NETCONF operations. Currently only supports making synchronous
180 216bb34c Shikhar Bhushan
RPC requests.
181 216bb34c Shikhar Bhushan
182 216bb34c Shikhar Bhushan
It is also a context manager, so a \hyperlink{ncclient.manager.Manager}{\code{Manager}} instance can be used
183 216bb34c Shikhar Bhushan
with the \emph{with} statement. The session is closed when the context ends.
184 216bb34c Shikhar Bhushan
\index{set\_rpc\_error\_action() (ncclient.manager.Manager method)}
185 216bb34c Shikhar Bhushan
186 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.set_rpc_error_action}{}\begin{methoddesc}{set\_rpc\_error\_action}{action}
187 216bb34c Shikhar Bhushan
Specify the action to take when an \emph{\textless{}rpc-error\textgreater{}} element is encountered.
188 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
189 216bb34c Shikhar Bhushan
\item[Parameter]
190 216bb34c Shikhar Bhushan
\emph{action} -- one of \hyperlink{ncclient.manager.RAISE_ALL}{\code{RAISE\_ALL}}, \hyperlink{ncclient.manager.RAISE_ERR}{\code{RAISE\_ERR}}, \hyperlink{ncclient.manager.RAISE_NONE}{\code{RAISE\_NONE}}
191 216bb34c Shikhar Bhushan
192 216bb34c Shikhar Bhushan
\end{description}\end{quote}
193 216bb34c Shikhar Bhushan
\end{methoddesc}
194 216bb34c Shikhar Bhushan
\index{get() (ncclient.manager.Manager method)}
195 216bb34c Shikhar Bhushan
196 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.get}{}\begin{methoddesc}{get}{*args, **kwds}~\begin{quote}\begin{description}
197 216bb34c Shikhar Bhushan
\item[See]
198 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.Get.request}{\code{Get.request()}}
199 216bb34c Shikhar Bhushan
200 216bb34c Shikhar Bhushan
\end{description}\end{quote}
201 216bb34c Shikhar Bhushan
\end{methoddesc}
202 216bb34c Shikhar Bhushan
\index{get\_config() (ncclient.manager.Manager method)}
203 216bb34c Shikhar Bhushan
204 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.get_config}{}\begin{methoddesc}{get\_config}{*args, **kwds}~\begin{quote}\begin{description}
205 216bb34c Shikhar Bhushan
\item[See]
206 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.GetConfig.request}{\code{GetConfig.request()}}
207 216bb34c Shikhar Bhushan
208 216bb34c Shikhar Bhushan
\end{description}\end{quote}
209 216bb34c Shikhar Bhushan
\end{methoddesc}
210 216bb34c Shikhar Bhushan
\index{edit\_config() (ncclient.manager.Manager method)}
211 216bb34c Shikhar Bhushan
212 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.edit_config}{}\begin{methoddesc}{edit\_config}{*args, **kwds}~\begin{quote}\begin{description}
213 216bb34c Shikhar Bhushan
\item[See]
214 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.EditConfig.request}{\code{EditConfig.request()}}
215 216bb34c Shikhar Bhushan
216 216bb34c Shikhar Bhushan
\end{description}\end{quote}
217 216bb34c Shikhar Bhushan
\end{methoddesc}
218 216bb34c Shikhar Bhushan
\index{copy\_config() (ncclient.manager.Manager method)}
219 216bb34c Shikhar Bhushan
220 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.copy_config}{}\begin{methoddesc}{copy\_config}{*args, **kwds}~\begin{quote}\begin{description}
221 216bb34c Shikhar Bhushan
\item[See]
222 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.CopyConfig.request}{\code{CopyConfig.request()}}
223 216bb34c Shikhar Bhushan
224 216bb34c Shikhar Bhushan
\end{description}\end{quote}
225 216bb34c Shikhar Bhushan
\end{methoddesc}
226 216bb34c Shikhar Bhushan
\index{validate() (ncclient.manager.Manager method)}
227 216bb34c Shikhar Bhushan
228 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.validate}{}\begin{methoddesc}{validate}{*args, **kwds}~\begin{quote}\begin{description}
229 216bb34c Shikhar Bhushan
\item[See]
230 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.Validate.request}{\code{GetConfig.request()}}
231 216bb34c Shikhar Bhushan
232 216bb34c Shikhar Bhushan
\end{description}\end{quote}
233 216bb34c Shikhar Bhushan
\end{methoddesc}
234 216bb34c Shikhar Bhushan
\index{commit() (ncclient.manager.Manager method)}
235 216bb34c Shikhar Bhushan
236 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.commit}{}\begin{methoddesc}{commit}{*args, **kwds}~\begin{quote}\begin{description}
237 216bb34c Shikhar Bhushan
\item[See]
238 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.Commit.request}{\code{Commit.request()}}
239 216bb34c Shikhar Bhushan
240 216bb34c Shikhar Bhushan
\end{description}\end{quote}
241 216bb34c Shikhar Bhushan
\end{methoddesc}
242 216bb34c Shikhar Bhushan
\index{discard\_changes() (ncclient.manager.Manager method)}
243 216bb34c Shikhar Bhushan
244 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.discard_changes}{}\begin{methoddesc}{discard\_changes}{*args, **kwds}~\begin{quote}\begin{description}
245 216bb34c Shikhar Bhushan
\item[See]
246 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.DiscardChanges.request}{\code{DiscardChanges.request()}}
247 216bb34c Shikhar Bhushan
248 216bb34c Shikhar Bhushan
\end{description}\end{quote}
249 216bb34c Shikhar Bhushan
\end{methoddesc}
250 216bb34c Shikhar Bhushan
\index{delete\_config() (ncclient.manager.Manager method)}
251 216bb34c Shikhar Bhushan
252 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.delete_config}{}\begin{methoddesc}{delete\_config}{*args, **kwds}~\begin{quote}\begin{description}
253 216bb34c Shikhar Bhushan
\item[See]
254 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.DeleteConfig.request}{\code{DeleteConfig.request()}}
255 216bb34c Shikhar Bhushan
256 216bb34c Shikhar Bhushan
\end{description}\end{quote}
257 216bb34c Shikhar Bhushan
\end{methoddesc}
258 216bb34c Shikhar Bhushan
\index{lock() (ncclient.manager.Manager method)}
259 216bb34c Shikhar Bhushan
260 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.lock}{}\begin{methoddesc}{lock}{*args, **kwds}~\begin{quote}\begin{description}
261 216bb34c Shikhar Bhushan
\item[See]
262 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.Lock.request}{\code{Lock.request()}}
263 216bb34c Shikhar Bhushan
264 216bb34c Shikhar Bhushan
\end{description}\end{quote}
265 216bb34c Shikhar Bhushan
\end{methoddesc}
266 216bb34c Shikhar Bhushan
\index{unlock() (ncclient.manager.Manager method)}
267 216bb34c Shikhar Bhushan
268 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.unlock}{}\begin{methoddesc}{unlock}{*args, **kwds}~\begin{quote}\begin{description}
269 216bb34c Shikhar Bhushan
\item[See]
270 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.Unlock.request}{\code{DiscardChanges.request()}}
271 216bb34c Shikhar Bhushan
272 216bb34c Shikhar Bhushan
\end{description}\end{quote}
273 216bb34c Shikhar Bhushan
\end{methoddesc}
274 216bb34c Shikhar Bhushan
\index{close\_session() (ncclient.manager.Manager method)}
275 216bb34c Shikhar Bhushan
276 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.close_session}{}\begin{methoddesc}{close\_session}{*args, **kwds}~\begin{quote}\begin{description}
277 216bb34c Shikhar Bhushan
\item[See]
278 216bb34c Shikhar Bhushan
\code{CloseSession.request()}
279 216bb34c Shikhar Bhushan
280 216bb34c Shikhar Bhushan
\end{description}\end{quote}
281 216bb34c Shikhar Bhushan
\end{methoddesc}
282 216bb34c Shikhar Bhushan
\index{kill\_session() (ncclient.manager.Manager method)}
283 216bb34c Shikhar Bhushan
284 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.kill_session}{}\begin{methoddesc}{kill\_session}{*args, **kwds}~\begin{quote}\begin{description}
285 216bb34c Shikhar Bhushan
\item[See]
286 216bb34c Shikhar Bhushan
\code{KillSession.request()}
287 216bb34c Shikhar Bhushan
288 216bb34c Shikhar Bhushan
\end{description}\end{quote}
289 216bb34c Shikhar Bhushan
\end{methoddesc}
290 216bb34c Shikhar Bhushan
\index{locked() (ncclient.manager.Manager method)}
291 216bb34c Shikhar Bhushan
292 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.locked}{}\begin{methoddesc}{locked}{target}
293 216bb34c Shikhar Bhushan
Returns a context manager for the \emph{with} statement.
294 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
295 216bb34c Shikhar Bhushan
\item[Parameter]
296 216bb34c Shikhar Bhushan
\emph{target} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- name of the datastore to lock
297 216bb34c Shikhar Bhushan
298 216bb34c Shikhar Bhushan
\item[Return type]
299 216bb34c Shikhar Bhushan
\code{operations.LockContext}
300 216bb34c Shikhar Bhushan
301 216bb34c Shikhar Bhushan
\end{description}\end{quote}
302 216bb34c Shikhar Bhushan
\end{methoddesc}
303 216bb34c Shikhar Bhushan
\index{close() (ncclient.manager.Manager method)}
304 216bb34c Shikhar Bhushan
305 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.close}{}\begin{methoddesc}{close}{}
306 216bb34c Shikhar Bhushan
Closes the NETCONF session. First does \emph{\textless{}close-session\textgreater{}} RPC.
307 216bb34c Shikhar Bhushan
\end{methoddesc}
308 216bb34c Shikhar Bhushan
\index{client\_capabilities (ncclient.manager.Manager attribute)}
309 216bb34c Shikhar Bhushan
310 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.client_capabilities}{}\begin{memberdesc}{client\_capabilities}
311 216bb34c Shikhar Bhushan
\hyperlink{ncclient.capabilities.Capabilities}{\code{Capabilities}} object for client
312 216bb34c Shikhar Bhushan
\end{memberdesc}
313 216bb34c Shikhar Bhushan
\index{server\_capabilities (ncclient.manager.Manager attribute)}
314 216bb34c Shikhar Bhushan
315 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.server_capabilities}{}\begin{memberdesc}{server\_capabilities}
316 216bb34c Shikhar Bhushan
\hyperlink{ncclient.capabilities.Capabilities}{\code{Capabilities}} object for server
317 216bb34c Shikhar Bhushan
\end{memberdesc}
318 216bb34c Shikhar Bhushan
\index{session\_id (ncclient.manager.Manager attribute)}
319 216bb34c Shikhar Bhushan
320 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.session_id}{}\begin{memberdesc}{session\_id}
321 216bb34c Shikhar Bhushan
\emph{\textless{}session-id\textgreater{}} as assigned by NETCONF server
322 216bb34c Shikhar Bhushan
\end{memberdesc}
323 216bb34c Shikhar Bhushan
\index{connected (ncclient.manager.Manager attribute)}
324 216bb34c Shikhar Bhushan
325 216bb34c Shikhar Bhushan
\hypertarget{ncclient.manager.Manager.connected}{}\begin{memberdesc}{connected}
326 216bb34c Shikhar Bhushan
Whether currently connected to NETCONF server
327 216bb34c Shikhar Bhushan
\end{memberdesc}
328 216bb34c Shikhar Bhushan
\end{classdesc}
329 216bb34c Shikhar Bhushan
330 216bb34c Shikhar Bhushan
\resetcurrentobjects
331 216bb34c Shikhar Bhushan
\hypertarget{--doc-userdoc/capabilities}{}
332 216bb34c Shikhar Bhushan
333 216bb34c Shikhar Bhushan
\section{\texttt{capabilities} module}
334 216bb34c Shikhar Bhushan
\index{ncclient.capabilities (module)}
335 216bb34c Shikhar Bhushan
\hypertarget{module-ncclient.capabilities}{}
336 216bb34c Shikhar Bhushan
\declaremodule[ncclient.capabilities]{}{ncclient.capabilities}
337 216bb34c Shikhar Bhushan
\modulesynopsis{}\index{CAPABILITIES (in module ncclient.capabilities)}
338 216bb34c Shikhar Bhushan
339 216bb34c Shikhar Bhushan
\hypertarget{ncclient.capabilities.CAPABILITIES}{}\begin{datadesc}{CAPABILITIES}
340 216bb34c Shikhar Bhushan
\hyperlink{ncclient.capabilities.Capabilities}{\code{Capabilities}} object representing the capabilities currently supported by NCClient
341 216bb34c Shikhar Bhushan
\end{datadesc}
342 216bb34c Shikhar Bhushan
\index{Capabilities (class in ncclient.capabilities)}
343 216bb34c Shikhar Bhushan
344 216bb34c Shikhar Bhushan
\hypertarget{ncclient.capabilities.Capabilities}{}\begin{classdesc}{Capabilities}{capabilities}
345 216bb34c Shikhar Bhushan
Represents the set of capabilities for a NETCONF client or server.
346 216bb34c Shikhar Bhushan
Initialised with a list of capability URI's.
347 216bb34c Shikhar Bhushan
348 216bb34c Shikhar Bhushan
Presence of a capability can be checked with the \emph{in} operations. In addition
349 216bb34c Shikhar Bhushan
to the URI, for capabilities of the form
350 216bb34c Shikhar Bhushan
\emph{urn:ietf:params:netconf:capability:\$name:\$version} their shorthand can be
351 216bb34c Shikhar Bhushan
used as a key. For example, for
352 216bb34c Shikhar Bhushan
\emph{urn:ietf:params:netconf:capability:candidate:1.0} the shorthand would be
353 216bb34c Shikhar Bhushan
\emph{:candidate}. If version is significant, use \emph{:candidate:1.0} as key.
354 216bb34c Shikhar Bhushan
\index{add() (ncclient.capabilities.Capabilities method)}
355 216bb34c Shikhar Bhushan
356 216bb34c Shikhar Bhushan
\hypertarget{ncclient.capabilities.Capabilities.add}{}\begin{methoddesc}{add}{uri}
357 216bb34c Shikhar Bhushan
Add a capability
358 216bb34c Shikhar Bhushan
\end{methoddesc}
359 216bb34c Shikhar Bhushan
\index{check() (ncclient.capabilities.Capabilities method)}
360 216bb34c Shikhar Bhushan
361 216bb34c Shikhar Bhushan
\hypertarget{ncclient.capabilities.Capabilities.check}{}\begin{methoddesc}{check}{key}
362 216bb34c Shikhar Bhushan
Whether specified capability is present.
363 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
364 216bb34c Shikhar Bhushan
\item[Parameter]
365 216bb34c Shikhar Bhushan
\emph{key} -- URI or shorthand
366 216bb34c Shikhar Bhushan
367 216bb34c Shikhar Bhushan
\end{description}\end{quote}
368 216bb34c Shikhar Bhushan
\end{methoddesc}
369 216bb34c Shikhar Bhushan
\index{remove() (ncclient.capabilities.Capabilities method)}
370 216bb34c Shikhar Bhushan
371 216bb34c Shikhar Bhushan
\hypertarget{ncclient.capabilities.Capabilities.remove}{}\begin{methoddesc}{remove}{uri}
372 216bb34c Shikhar Bhushan
Remove a capability
373 216bb34c Shikhar Bhushan
\end{methoddesc}
374 216bb34c Shikhar Bhushan
\end{classdesc}
375 216bb34c Shikhar Bhushan
376 216bb34c Shikhar Bhushan
\resetcurrentobjects
377 216bb34c Shikhar Bhushan
\hypertarget{--doc-userdoc/content}{}
378 216bb34c Shikhar Bhushan
379 216bb34c Shikhar Bhushan
\section{\texttt{content} module}
380 216bb34c Shikhar Bhushan
\index{ncclient.content (module)}
381 216bb34c Shikhar Bhushan
\hypertarget{module-ncclient.content}{}
382 216bb34c Shikhar Bhushan
\declaremodule[ncclient.content]{}{ncclient.content}
383 216bb34c Shikhar Bhushan
\modulesynopsis{Content layer}
384 216bb34c Shikhar Bhushan
The \code{content} module provides methods for creating XML documents, parsing XML, and converting between different XML representations. It uses \href{http://docs.python.org/library/xml.etree.elementtree.html\#module-xml.etree.ElementTree}{\code{ElementTree}} internally.
385 216bb34c Shikhar Bhushan
386 216bb34c Shikhar Bhushan
387 216bb34c Shikhar Bhushan
\subsection{Namespaces}
388 216bb34c Shikhar Bhushan
389 216bb34c Shikhar Bhushan
The following namespace is defined in this module.
390 216bb34c Shikhar Bhushan
\index{BASE\_NS (in module ncclient.content)}
391 216bb34c Shikhar Bhushan
392 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.BASE_NS}{}\begin{datadesc}{BASE\_NS}
393 216bb34c Shikhar Bhushan
Base NETCONf namespace
394 216bb34c Shikhar Bhushan
\end{datadesc}
395 216bb34c Shikhar Bhushan
396 216bb34c Shikhar Bhushan
Namespaces are handled just the same way as \href{http://docs.python.org/library/xml.etree.elementtree.html\#module-xml.etree.ElementTree}{\code{ElementTree}}. So a qualified name takes the form \emph{\{namespace\}tag}. There are some utility functions for qualified names:
397 216bb34c Shikhar Bhushan
\index{qualify() (in module ncclient.content)}
398 216bb34c Shikhar Bhushan
399 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.qualify}{}\begin{funcdesc}{qualify}{tag, {[}ns=BASE\_NS{]}}~\begin{quote}\begin{description}
400 216bb34c Shikhar Bhushan
\item[Returns]
401 216bb34c Shikhar Bhushan
qualified name
402 216bb34c Shikhar Bhushan
403 216bb34c Shikhar Bhushan
\end{description}\end{quote}
404 216bb34c Shikhar Bhushan
\end{funcdesc}
405 216bb34c Shikhar Bhushan
\index{unqualify() (in module ncclient.content)}
406 216bb34c Shikhar Bhushan
407 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.unqualify}{}\begin{funcdesc}{unqualify}{tag}~\begin{quote}\begin{description}
408 216bb34c Shikhar Bhushan
\item[Returns]
409 216bb34c Shikhar Bhushan
unqualified name
410 216bb34c Shikhar Bhushan
411 216bb34c Shikhar Bhushan
\end{description}\end{quote}
412 216bb34c Shikhar Bhushan
413 216bb34c Shikhar Bhushan
\begin{notice}{note}{Note:}
414 216bb34c Shikhar Bhushan
It is strongly recommended to compare qualified names.
415 216bb34c Shikhar Bhushan
\end{notice}
416 216bb34c Shikhar Bhushan
\end{funcdesc}
417 216bb34c Shikhar Bhushan
\hypertarget{dtree}{}
418 216bb34c Shikhar Bhushan
419 216bb34c Shikhar Bhushan
\subsection{DictTree XML representation}
420 216bb34c Shikhar Bhushan
421 216bb34c Shikhar Bhushan
\begin{notice}{note}{Note:}
422 216bb34c Shikhar Bhushan
Where this representation is stipulated, an XML literal or \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}} is just fine as well.
423 216bb34c Shikhar Bhushan
\end{notice}
424 216bb34c Shikhar Bhushan
425 216bb34c Shikhar Bhushan
\code{ncclient} can make use of a special syntax for XML based on Python dictionaries. It is best illustrated through an example:
426 216bb34c Shikhar Bhushan
427 216bb34c Shikhar Bhushan
\begin{Verbatim}[commandchars=@\[\]]
428 216bb34c Shikhar Bhushan
dtree @PYGbe[=] {
429 216bb34c Shikhar Bhushan
    @PYGaB[']@PYGaB[tag]@PYGaB[']: qualify(@PYGaB[']@PYGaB[a]@PYGaB['], @PYGaB[']@PYGaB[some@_namespace]@PYGaB[']),
430 216bb34c Shikhar Bhushan
    @PYGaB[']@PYGaB[attrib]@PYGaB[']: {@PYGaB[']@PYGaB[attr]@PYGaB[']: @PYGaB[']@PYGaB[val]@PYGaB[']},
431 216bb34c Shikhar Bhushan
    @PYGaB[']@PYGaB[subtree]@PYGaB[']: @PYGZlb[] { @PYGaB[']@PYGaB[tag]@PYGaB[']: @PYGaB[']@PYGaB[child1]@PYGaB['] }, { @PYGaB[']@PYGaB[tag]@PYGaB[']: @PYGaB[']@PYGaB[child2]@PYGaB['], @PYGaB[']@PYGaB[text]@PYGaB[']: @PYGaB[']@PYGaB[some text]@PYGaB['] } @PYGZrb[]
432 216bb34c Shikhar Bhushan
}
433 216bb34c Shikhar Bhushan
\end{Verbatim}
434 216bb34c Shikhar Bhushan
435 216bb34c Shikhar Bhushan
Calling \hyperlink{ncclient.content.dtree2xml}{\code{dtree2xml()}} on \emph{dtree} would return
436 216bb34c Shikhar Bhushan
437 216bb34c Shikhar Bhushan
\begin{Verbatim}[commandchars=@\[\]]
438 216bb34c Shikhar Bhushan
@PYGaO[@textless[]?xml version="1.0" encoding="UTF-8"?@textgreater[]]
439 216bb34c Shikhar Bhushan
@PYGba[@textless[]ns0:a] @PYGaR[attr=]@PYGaB["val"] @PYGaR[xmlns:ns0=]@PYGaB["some@_namespace"]@PYGba[@textgreater[]]
440 216bb34c Shikhar Bhushan
    @PYGba[@textless[]child1] @PYGba[/@textgreater[]]
441 216bb34c Shikhar Bhushan
    @PYGba[@textless[]child2]@PYGba[@textgreater[]]some text@PYGba[@textless[]/child2@textgreater[]]
442 216bb34c Shikhar Bhushan
@PYGba[@textless[]/ns0:a@textgreater[]]
443 216bb34c Shikhar Bhushan
\end{Verbatim}
444 216bb34c Shikhar Bhushan
445 216bb34c Shikhar Bhushan
In addition to a `pure' dictionary representation a DictTree node (including the root) may be an XML literal or an \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}} instance. The above example could thus be equivalently written as:
446 216bb34c Shikhar Bhushan
447 216bb34c Shikhar Bhushan
\begin{Verbatim}[commandchars=@\[\]]
448 216bb34c Shikhar Bhushan
dtree2 @PYGbe[=] {
449 216bb34c Shikhar Bhushan
    @PYGaB[']@PYGaB[tag]@PYGaB[']: @PYGaB[']@PYGaB[{ns}a]@PYGaB['],
450 216bb34c Shikhar Bhushan
    @PYGaB[']@PYGaB[attrib]@PYGaB[']: {@PYGaB[']@PYGaB[attr]@PYGaB[']: @PYGaB[']@PYGaB[val]@PYGaB[']},
451 216bb34c Shikhar Bhushan
    @PYGaB[']@PYGaB[subtree]@PYGaB[']: @PYGZlb[] ET@PYGbe[.]Element(@PYGaB[']@PYGaB[child1]@PYGaB[']), @PYGaB[']@PYGaB[@textless[]child2@textgreater[]some text@textless[]/child2@textgreater[]]@PYGaB['] @PYGZrb[]
452 216bb34c Shikhar Bhushan
}
453 216bb34c Shikhar Bhushan
\end{Verbatim}
454 216bb34c Shikhar Bhushan
455 216bb34c Shikhar Bhushan
456 216bb34c Shikhar Bhushan
\subsection{Converting between different representations}
457 216bb34c Shikhar Bhushan
458 216bb34c Shikhar Bhushan
Conversions \emph{to} DictTree representation are guaranteed to be entirely dictionaries. In converting \emph{from} DictTree representation, the argument may be any valid representation as specified.
459 216bb34c Shikhar Bhushan
\index{dtree2ele() (in module ncclient.content)}
460 216bb34c Shikhar Bhushan
461 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.dtree2ele}{}\begin{funcdesc}{dtree2ele}{spec}
462 216bb34c Shikhar Bhushan
DictTree -\textgreater{} Element
463 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
464 216bb34c Shikhar Bhushan
\item[Return type]
465 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}
466 216bb34c Shikhar Bhushan
467 216bb34c Shikhar Bhushan
\end{description}\end{quote}
468 216bb34c Shikhar Bhushan
\end{funcdesc}
469 216bb34c Shikhar Bhushan
\index{dtree2xml() (in module ncclient.content)}
470 216bb34c Shikhar Bhushan
471 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.dtree2xml}{}\begin{funcdesc}{dtree2xml}{spec, {[}encoding="UTF-8"{]}}
472 216bb34c Shikhar Bhushan
DictTree -\textgreater{} XML
473 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
474 216bb34c Shikhar Bhushan
\item[Parameter]
475 216bb34c Shikhar Bhushan
\emph{encoding} -- chraracter encoding
476 216bb34c Shikhar Bhushan
477 216bb34c Shikhar Bhushan
\item[Return type]
478 216bb34c Shikhar Bhushan
string
479 216bb34c Shikhar Bhushan
480 216bb34c Shikhar Bhushan
\end{description}\end{quote}
481 216bb34c Shikhar Bhushan
\end{funcdesc}
482 216bb34c Shikhar Bhushan
\index{ele2dtree() (in module ncclient.content)}
483 216bb34c Shikhar Bhushan
484 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.ele2dtree}{}\begin{funcdesc}{ele2dtree}{ele}
485 216bb34c Shikhar Bhushan
DictTree -\textgreater{} Element
486 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
487 216bb34c Shikhar Bhushan
\item[Return type]
488 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}}
489 216bb34c Shikhar Bhushan
490 216bb34c Shikhar Bhushan
\end{description}\end{quote}
491 216bb34c Shikhar Bhushan
\end{funcdesc}
492 216bb34c Shikhar Bhushan
\index{ele2xml() (in module ncclient.content)}
493 216bb34c Shikhar Bhushan
494 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.ele2xml}{}\begin{funcdesc}{ele2xml}{ele}
495 216bb34c Shikhar Bhushan
Element -\textgreater{} XML
496 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
497 216bb34c Shikhar Bhushan
\item[Parameter]
498 216bb34c Shikhar Bhushan
\emph{encoding} -- character encoding
499 216bb34c Shikhar Bhushan
500 216bb34c Shikhar Bhushan
\item[Return type]
501 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}}
502 216bb34c Shikhar Bhushan
503 216bb34c Shikhar Bhushan
\end{description}\end{quote}
504 216bb34c Shikhar Bhushan
\end{funcdesc}
505 216bb34c Shikhar Bhushan
\index{xml2dtree() (in module ncclient.content)}
506 216bb34c Shikhar Bhushan
507 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.xml2dtree}{}\begin{funcdesc}{xml2dtree}{xml}
508 216bb34c Shikhar Bhushan
XML -\textgreater{} DictTree
509 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
510 216bb34c Shikhar Bhushan
\item[Return type]
511 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}}
512 216bb34c Shikhar Bhushan
513 216bb34c Shikhar Bhushan
\end{description}\end{quote}
514 216bb34c Shikhar Bhushan
\end{funcdesc}
515 216bb34c Shikhar Bhushan
\index{xml2ele() (in module ncclient.content)}
516 216bb34c Shikhar Bhushan
517 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.xml2ele}{}\begin{funcdesc}{xml2ele}{xml}
518 216bb34c Shikhar Bhushan
XML -\textgreater{} Element
519 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
520 216bb34c Shikhar Bhushan
\item[Return type]
521 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}
522 216bb34c Shikhar Bhushan
523 216bb34c Shikhar Bhushan
\end{description}\end{quote}
524 216bb34c Shikhar Bhushan
\end{funcdesc}
525 216bb34c Shikhar Bhushan
526 216bb34c Shikhar Bhushan
527 216bb34c Shikhar Bhushan
\subsection{Other utility functions}
528 216bb34c Shikhar Bhushan
\index{iselement() (in module ncclient.content)}
529 216bb34c Shikhar Bhushan
530 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.iselement}{}\begin{funcdesc}{iselement}{obj}~\begin{quote}\begin{description}
531 216bb34c Shikhar Bhushan
\item[See]
532 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.iselement}{\code{xml.etree.ElementTree.iselement()}}
533 216bb34c Shikhar Bhushan
534 216bb34c Shikhar Bhushan
\end{description}\end{quote}
535 216bb34c Shikhar Bhushan
\end{funcdesc}
536 216bb34c Shikhar Bhushan
\index{find() (in module ncclient.content)}
537 216bb34c Shikhar Bhushan
538 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.find}{}\begin{funcdesc}{find}{ele, tag, {[}nslist=, {[}{]}{]}}
539 216bb34c Shikhar Bhushan
If \emph{nslist} is empty, same as \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element.find}{\code{xml.etree.ElementTree.Element.find()}}. If it is not, \emph{tag} is interpreted as an unqualified name and qualified using each item in \emph{nslist} (with a \href{http://docs.python.org/library/constants.html\#None}{\code{None}} item in \emph{nslit} meaning no qualification is done). The first match is returned.
540 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
541 216bb34c Shikhar Bhushan
\item[Parameter]
542 216bb34c Shikhar Bhushan
\emph{nslist} -- optional list of namespaces
543 216bb34c Shikhar Bhushan
544 216bb34c Shikhar Bhushan
\end{description}\end{quote}
545 216bb34c Shikhar Bhushan
\end{funcdesc}
546 216bb34c Shikhar Bhushan
\index{parse\_root() (in module ncclient.content)}
547 216bb34c Shikhar Bhushan
548 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.parse_root}{}\begin{funcdesc}{parse\_root}{raw}
549 216bb34c Shikhar Bhushan
Efficiently parses the root element of an XML document.
550 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
551 216bb34c Shikhar Bhushan
\item[Parameter]
552 216bb34c Shikhar Bhushan
\emph{raw} (string) -- XML document
553 216bb34c Shikhar Bhushan
554 216bb34c Shikhar Bhushan
\item[Returns]
555 216bb34c Shikhar Bhushan
a tuple of \code{(tag, attributes)}, where \code{tag} is the (qualified) name of the element and \code{attributes} is a dictionary of its attributes.
556 216bb34c Shikhar Bhushan
557 216bb34c Shikhar Bhushan
\item[Return type]
558 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/functions.html\#tuple}{\code{tuple}}
559 216bb34c Shikhar Bhushan
560 216bb34c Shikhar Bhushan
\end{description}\end{quote}
561 216bb34c Shikhar Bhushan
\end{funcdesc}
562 216bb34c Shikhar Bhushan
\index{validated\_element() (in module ncclient.content)}
563 216bb34c Shikhar Bhushan
564 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.validated_element}{}\begin{funcdesc}{validated\_element}{rep, tag=None, attrs=None, text=None}
565 216bb34c Shikhar Bhushan
Checks if the root element meets the supplied criteria. Returns a \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}} instance if so, otherwise raises \hyperlink{ncclient.content.ContentError}{\code{ContentError}}.
566 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
567 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
568 216bb34c Shikhar Bhushan
\item {} 
569 216bb34c Shikhar Bhushan
\emph{tag} -- tag name or a list of allowable tag names
570 216bb34c Shikhar Bhushan
571 216bb34c Shikhar Bhushan
\item {} 
572 216bb34c Shikhar Bhushan
\emph{attrs} -- list of required attribute names, each item may be a list of allowable alternatives
573 216bb34c Shikhar Bhushan
574 216bb34c Shikhar Bhushan
\item {} 
575 216bb34c Shikhar Bhushan
\emph{text} -- textual content to match
576 216bb34c Shikhar Bhushan
577 216bb34c Shikhar Bhushan
\end{itemize}
578 216bb34c Shikhar Bhushan
579 216bb34c Shikhar Bhushan
\end{description}\end{quote}
580 216bb34c Shikhar Bhushan
\end{funcdesc}
581 216bb34c Shikhar Bhushan
582 216bb34c Shikhar Bhushan
583 216bb34c Shikhar Bhushan
\subsection{Errors}
584 216bb34c Shikhar Bhushan
\index{ContentError}
585 216bb34c Shikhar Bhushan
586 216bb34c Shikhar Bhushan
\hypertarget{ncclient.content.ContentError}{}\begin{excdesc}{ContentError}
587 216bb34c Shikhar Bhushan
Bases: \code{ncclient.NCClientError}
588 216bb34c Shikhar Bhushan
589 216bb34c Shikhar Bhushan
Raised by methods of the \code{content} module in case of an error.
590 216bb34c Shikhar Bhushan
\end{excdesc}
591 216bb34c Shikhar Bhushan
592 216bb34c Shikhar Bhushan
\resetcurrentobjects
593 216bb34c Shikhar Bhushan
\hypertarget{--doc-userdoc/transport}{}
594 216bb34c Shikhar Bhushan
595 216bb34c Shikhar Bhushan
\section{\texttt{transport} module}
596 216bb34c Shikhar Bhushan
\index{ncclient.transport (module)}
597 216bb34c Shikhar Bhushan
\hypertarget{module-ncclient.transport}{}
598 216bb34c Shikhar Bhushan
\declaremodule[ncclient.transport]{}{ncclient.transport}
599 216bb34c Shikhar Bhushan
\modulesynopsis{Transport protocol layer}
600 216bb34c Shikhar Bhushan
601 216bb34c Shikhar Bhushan
\subsection{Base types}
602 216bb34c Shikhar Bhushan
\index{Session (class in ncclient.transport)}
603 216bb34c Shikhar Bhushan
604 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session}{}\begin{classdesc}{Session}{capabilities}
605 216bb34c Shikhar Bhushan
Base class for use by transport protocol implementations.
606 216bb34c Shikhar Bhushan
\index{add\_listener() (ncclient.transport.Session method)}
607 216bb34c Shikhar Bhushan
608 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.add_listener}{}\begin{methoddesc}{add\_listener}{listener}
609 216bb34c Shikhar Bhushan
Register a listener that will be notified of incoming messages and
610 216bb34c Shikhar Bhushan
errors.
611 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
612 216bb34c Shikhar Bhushan
\end{description}\end{quote}
613 216bb34c Shikhar Bhushan
\end{methoddesc}
614 216bb34c Shikhar Bhushan
\index{remove\_listener() (ncclient.transport.Session method)}
615 216bb34c Shikhar Bhushan
616 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.remove_listener}{}\begin{methoddesc}{remove\_listener}{listener}
617 216bb34c Shikhar Bhushan
Unregister some listener; ignore if the listener was never
618 216bb34c Shikhar Bhushan
registered.
619 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
620 216bb34c Shikhar Bhushan
\end{description}\end{quote}
621 216bb34c Shikhar Bhushan
\end{methoddesc}
622 216bb34c Shikhar Bhushan
\index{get\_listener\_instance() (ncclient.transport.Session method)}
623 216bb34c Shikhar Bhushan
624 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.get_listener_instance}{}\begin{methoddesc}{get\_listener\_instance}{cls}
625 216bb34c Shikhar Bhushan
If a listener of the specified type is registered, returns the
626 216bb34c Shikhar Bhushan
instance.
627 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
628 216bb34c Shikhar Bhushan
\end{description}\end{quote}
629 216bb34c Shikhar Bhushan
\end{methoddesc}
630 216bb34c Shikhar Bhushan
\index{client\_capabilities (ncclient.transport.Session attribute)}
631 216bb34c Shikhar Bhushan
632 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.client_capabilities}{}\begin{memberdesc}{client\_capabilities}
633 216bb34c Shikhar Bhushan
Client's \code{Capabilities}
634 216bb34c Shikhar Bhushan
\end{memberdesc}
635 216bb34c Shikhar Bhushan
\index{server\_capabilities (ncclient.transport.Session attribute)}
636 216bb34c Shikhar Bhushan
637 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.server_capabilities}{}\begin{memberdesc}{server\_capabilities}
638 216bb34c Shikhar Bhushan
Server's \code{Capabilities}
639 216bb34c Shikhar Bhushan
\end{memberdesc}
640 216bb34c Shikhar Bhushan
\index{connected (ncclient.transport.Session attribute)}
641 216bb34c Shikhar Bhushan
642 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.connected}{}\begin{memberdesc}{connected}
643 216bb34c Shikhar Bhushan
Connection status of the session.
644 216bb34c Shikhar Bhushan
\end{memberdesc}
645 216bb34c Shikhar Bhushan
\index{id (ncclient.transport.Session attribute)}
646 216bb34c Shikhar Bhushan
647 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.id}{}\begin{memberdesc}{id}
648 216bb34c Shikhar Bhushan
A \href{http://docs.python.org/library/string.html\#string}{\code{string}} representing the \code{session-id}. If the session has not
649 216bb34c Shikhar Bhushan
been initialized it will be \href{http://docs.python.org/library/constants.html\#None}{\code{None}}
650 216bb34c Shikhar Bhushan
\end{memberdesc}
651 216bb34c Shikhar Bhushan
\index{can\_pipeline (ncclient.transport.Session attribute)}
652 216bb34c Shikhar Bhushan
653 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.Session.can_pipeline}{}\begin{memberdesc}{can\_pipeline}
654 216bb34c Shikhar Bhushan
Whether this session supports pipelining
655 216bb34c Shikhar Bhushan
\end{memberdesc}
656 216bb34c Shikhar Bhushan
\end{classdesc}
657 216bb34c Shikhar Bhushan
\index{SessionListener (class in ncclient.transport)}
658 216bb34c Shikhar Bhushan
659 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SessionListener}{}\begin{classdesc}{SessionListener}{}
660 216bb34c Shikhar Bhushan
Base class for \hyperlink{ncclient.transport.Session}{\code{Session}} listeners, which are notified when a new
661 216bb34c Shikhar Bhushan
NETCONF message is received or an error occurs.
662 216bb34c Shikhar Bhushan
663 216bb34c Shikhar Bhushan
\begin{notice}{note}{Note:}
664 216bb34c Shikhar Bhushan
Avoid time-intensive tasks in a callback's context.
665 216bb34c Shikhar Bhushan
\end{notice}
666 216bb34c Shikhar Bhushan
\index{callback() (ncclient.transport.SessionListener method)}
667 216bb34c Shikhar Bhushan
668 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SessionListener.callback}{}\begin{methoddesc}{callback}{root, raw}
669 216bb34c Shikhar Bhushan
Called when a new XML document is received. The \code{root} argument
670 216bb34c Shikhar Bhushan
allows the callback to determine whether it wants to further process the
671 216bb34c Shikhar Bhushan
document.
672 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
673 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
674 216bb34c Shikhar Bhushan
\item {} 
675 216bb34c Shikhar Bhushan
\emph{root} (\href{http://docs.python.org/library/functions.html\#tuple}{\code{tuple}}) -- is a tuple of \code{(tag, attributes)} where \code{tag} is the qualified name of the root element and \code{attributes} is a dictionary of its attributes (also qualified names)
676 216bb34c Shikhar Bhushan
677 216bb34c Shikhar Bhushan
\item {} 
678 216bb34c Shikhar Bhushan
\emph{raw} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- XML document
679 216bb34c Shikhar Bhushan
680 216bb34c Shikhar Bhushan
\end{itemize}
681 216bb34c Shikhar Bhushan
682 216bb34c Shikhar Bhushan
\end{description}\end{quote}
683 216bb34c Shikhar Bhushan
\end{methoddesc}
684 216bb34c Shikhar Bhushan
\index{errback() (ncclient.transport.SessionListener method)}
685 216bb34c Shikhar Bhushan
686 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SessionListener.errback}{}\begin{methoddesc}{errback}{ex}
687 216bb34c Shikhar Bhushan
Called when an error occurs.
688 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
689 216bb34c Shikhar Bhushan
\end{description}\end{quote}
690 216bb34c Shikhar Bhushan
\end{methoddesc}
691 216bb34c Shikhar Bhushan
\end{classdesc}
692 216bb34c Shikhar Bhushan
693 216bb34c Shikhar Bhushan
694 216bb34c Shikhar Bhushan
\subsection{SSH session implementation}
695 216bb34c Shikhar Bhushan
\index{default\_unknown\_host\_cb() (ncclient.transport.ssh static method)}
696 216bb34c Shikhar Bhushan
697 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.ssh.default_unknown_host_cb}{}\begin{staticmethoddesc}[ssh]{default\_unknown\_host\_cb}{host, key}
698 216bb34c Shikhar Bhushan
An \code{unknown host callback} returns \href{http://docs.python.org/library/constants.html\#True}{\code{True}} if it finds the key
699 216bb34c Shikhar Bhushan
acceptable, and \href{http://docs.python.org/library/constants.html\#False}{\code{False}} if not.
700 216bb34c Shikhar Bhushan
701 216bb34c Shikhar Bhushan
This default callback always returns \href{http://docs.python.org/library/constants.html\#False}{\code{False}}, which would lead to
702 216bb34c Shikhar Bhushan
\code{connect()} raising a \code{SSHUnknownHost} exception.
703 216bb34c Shikhar Bhushan
704 216bb34c Shikhar Bhushan
Supply another valid callback if you need to verify the host key
705 216bb34c Shikhar Bhushan
programatically.
706 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
707 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
708 216bb34c Shikhar Bhushan
\item {} 
709 216bb34c Shikhar Bhushan
\emph{host} (string) -- the host for whom key needs to be verified
710 216bb34c Shikhar Bhushan
711 216bb34c Shikhar Bhushan
\item {} 
712 216bb34c Shikhar Bhushan
\emph{key} (string) -- a hex string representing the host key fingerprint
713 216bb34c Shikhar Bhushan
714 216bb34c Shikhar Bhushan
\end{itemize}
715 216bb34c Shikhar Bhushan
716 216bb34c Shikhar Bhushan
\end{description}\end{quote}
717 216bb34c Shikhar Bhushan
\end{staticmethoddesc}
718 216bb34c Shikhar Bhushan
\index{SSHSession (class in ncclient.transport)}
719 216bb34c Shikhar Bhushan
720 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SSHSession}{}\begin{classdesc}{SSHSession}{capabilities}
721 216bb34c Shikhar Bhushan
Bases: \code{ncclient.transport.session.Session}
722 216bb34c Shikhar Bhushan
723 216bb34c Shikhar Bhushan
Implements a \index{RFC!RFC 4742}\href{http://tools.ietf.org/html/rfc4742.html}{\textbf{RFC 4742}} NETCONF session over SSH.
724 216bb34c Shikhar Bhushan
\index{connect() (ncclient.transport.SSHSession method)}
725 216bb34c Shikhar Bhushan
726 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SSHSession.connect}{}\begin{methoddesc}{connect}{host, {[}port=830, timeout=None, username=None, password=None, key\_filename=None, allow\_agent=True, look\_for\_keys=True{]}}
727 216bb34c Shikhar Bhushan
Connect via SSH and initialize the NETCONF session. First attempts
728 216bb34c Shikhar Bhushan
the publickey authentication method and then password authentication.
729 216bb34c Shikhar Bhushan
730 216bb34c Shikhar Bhushan
To disable attemting publickey authentication altogether, call with
731 216bb34c Shikhar Bhushan
\emph{allow\_agent} and \emph{look\_for\_keys} as \href{http://docs.python.org/library/constants.html\#False}{\code{False}}. This may be needed
732 216bb34c Shikhar Bhushan
for Cisco devices which immediately disconnect on an incorrect
733 216bb34c Shikhar Bhushan
authentication attempt.
734 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
735 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
736 216bb34c Shikhar Bhushan
\item {} 
737 216bb34c Shikhar Bhushan
\emph{host} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- the hostname or IP address to connect to
738 216bb34c Shikhar Bhushan
739 216bb34c Shikhar Bhushan
\item {} 
740 216bb34c Shikhar Bhushan
\emph{port} (\href{http://docs.python.org/library/functions.html\#int}{\code{int}}) -- by default 830, but some devices use the default SSH port of 22 so this may need to be specified
741 216bb34c Shikhar Bhushan
742 216bb34c Shikhar Bhushan
\item {} 
743 216bb34c Shikhar Bhushan
\emph{timeout} (\href{http://docs.python.org/library/functions.html\#int}{\code{int}}) -- an optional timeout for the TCP handshake
744 216bb34c Shikhar Bhushan
745 216bb34c Shikhar Bhushan
\item {} 
746 216bb34c Shikhar Bhushan
\emph{unknown\_host\_cb} (see \hyperlink{ncclient.transport.ssh.default_unknown_host_cb}{\code{signature}}) -- called when a host key is not recognized
747 216bb34c Shikhar Bhushan
748 216bb34c Shikhar Bhushan
\item {} 
749 216bb34c Shikhar Bhushan
\emph{username} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- the username to use for SSH authentication
750 216bb34c Shikhar Bhushan
751 216bb34c Shikhar Bhushan
\item {} 
752 216bb34c Shikhar Bhushan
\emph{password} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- the password used if using password authentication, or the passphrase to use for unlocking keys that require it
753 216bb34c Shikhar Bhushan
754 216bb34c Shikhar Bhushan
\item {} 
755 216bb34c Shikhar Bhushan
\emph{key\_filename} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- a filename where a the private key to be used can be found
756 216bb34c Shikhar Bhushan
757 216bb34c Shikhar Bhushan
\item {} 
758 216bb34c Shikhar Bhushan
\emph{allow\_agent} (\href{http://docs.python.org/library/functions.html\#bool}{\code{bool}}) -- enables querying SSH agent (if found) for keys
759 216bb34c Shikhar Bhushan
760 216bb34c Shikhar Bhushan
\item {} 
761 216bb34c Shikhar Bhushan
\emph{look\_for\_keys} (\href{http://docs.python.org/library/functions.html\#bool}{\code{bool}}) -- enables looking in the usual locations for ssh keys (e.g. \code{\textasciitilde{}/.ssh/id\_*})
762 216bb34c Shikhar Bhushan
763 216bb34c Shikhar Bhushan
\end{itemize}
764 216bb34c Shikhar Bhushan
765 216bb34c Shikhar Bhushan
\end{description}\end{quote}
766 216bb34c Shikhar Bhushan
\end{methoddesc}
767 216bb34c Shikhar Bhushan
\index{load\_known\_hosts() (ncclient.transport.SSHSession method)}
768 216bb34c Shikhar Bhushan
769 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SSHSession.load_known_hosts}{}\begin{methoddesc}{load\_known\_hosts}{filename=None}
770 216bb34c Shikhar Bhushan
Load host keys from a \code{known\_hosts}-style file. Can be called multiple
771 216bb34c Shikhar Bhushan
times.
772 216bb34c Shikhar Bhushan
773 216bb34c Shikhar Bhushan
If \emph{filename} is not specified, looks in the default locations i.e.
774 216bb34c Shikhar Bhushan
\code{\textasciitilde{}/.ssh/known\_hosts} and \code{\textasciitilde{}/ssh/known\_hosts} for Windows.
775 216bb34c Shikhar Bhushan
\end{methoddesc}
776 216bb34c Shikhar Bhushan
\index{transport (ncclient.transport.SSHSession attribute)}
777 216bb34c Shikhar Bhushan
778 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SSHSession.transport}{}\begin{memberdesc}{transport}
779 216bb34c Shikhar Bhushan
Underlying \href{http://www.lag.net/paramiko/docs/paramiko.Transport-class.html}{paramiko.Transport}
780 216bb34c Shikhar Bhushan
object. This makes it possible to call methods like set\_keepalive on it.
781 216bb34c Shikhar Bhushan
\end{memberdesc}
782 216bb34c Shikhar Bhushan
\end{classdesc}
783 216bb34c Shikhar Bhushan
784 216bb34c Shikhar Bhushan
785 216bb34c Shikhar Bhushan
\subsection{Errors}
786 216bb34c Shikhar Bhushan
\index{TransportError}
787 216bb34c Shikhar Bhushan
788 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.TransportError}{}\begin{excdesc}{TransportError}
789 216bb34c Shikhar Bhushan
Bases: \code{ncclient.NCClientError}
790 216bb34c Shikhar Bhushan
\end{excdesc}
791 216bb34c Shikhar Bhushan
\index{SessionCloseError}
792 216bb34c Shikhar Bhushan
793 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SessionCloseError}{}\begin{excdesc}{SessionCloseError}
794 216bb34c Shikhar Bhushan
Bases: \code{ncclient.transport.errors.TransportError}
795 216bb34c Shikhar Bhushan
\end{excdesc}
796 216bb34c Shikhar Bhushan
\index{SSHError}
797 216bb34c Shikhar Bhushan
798 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SSHError}{}\begin{excdesc}{SSHError}
799 216bb34c Shikhar Bhushan
Bases: \code{ncclient.transport.errors.TransportError}
800 216bb34c Shikhar Bhushan
\end{excdesc}
801 216bb34c Shikhar Bhushan
\index{AuthenticationError}
802 216bb34c Shikhar Bhushan
803 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.AuthenticationError}{}\begin{excdesc}{AuthenticationError}
804 216bb34c Shikhar Bhushan
Bases: \code{ncclient.transport.errors.TransportError}
805 216bb34c Shikhar Bhushan
\end{excdesc}
806 216bb34c Shikhar Bhushan
\index{SSHUnknownHostError}
807 216bb34c Shikhar Bhushan
808 216bb34c Shikhar Bhushan
\hypertarget{ncclient.transport.SSHUnknownHostError}{}\begin{excdesc}{SSHUnknownHostError}
809 216bb34c Shikhar Bhushan
Bases: \code{ncclient.transport.errors.SSHError}
810 216bb34c Shikhar Bhushan
\end{excdesc}
811 216bb34c Shikhar Bhushan
812 216bb34c Shikhar Bhushan
\resetcurrentobjects
813 216bb34c Shikhar Bhushan
\hypertarget{--doc-userdoc/operations}{}
814 216bb34c Shikhar Bhushan
815 216bb34c Shikhar Bhushan
\section{\texttt{operations} module}
816 216bb34c Shikhar Bhushan
\index{ncclient.operations (module)}
817 216bb34c Shikhar Bhushan
\hypertarget{module-ncclient.operations}{}
818 216bb34c Shikhar Bhushan
\declaremodule[ncclient.operations]{}{ncclient.operations}
819 216bb34c Shikhar Bhushan
\modulesynopsis{RPC and Operation layers}
820 216bb34c Shikhar Bhushan
821 216bb34c Shikhar Bhushan
\subsection{Base types}
822 216bb34c Shikhar Bhushan
\index{RPC (class in ncclient.operations.rpc)}
823 216bb34c Shikhar Bhushan
824 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC}{}\begin{classdesc}{RPC}{session, {[}async=False, timeout=None{]}}
825 216bb34c Shikhar Bhushan
Base class for all operations.
826 216bb34c Shikhar Bhushan
827 216bb34c Shikhar Bhushan
Directly corresponds to \emph{\textless{}rpc\textgreater{}} requests. Handles making the request, and
828 216bb34c Shikhar Bhushan
taking delivery of the reply.
829 216bb34c Shikhar Bhushan
\index{set\_async() (ncclient.operations.rpc.RPC method)}
830 216bb34c Shikhar Bhushan
831 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.set_async}{}\begin{methoddesc}{set\_async}{async=True}
832 216bb34c Shikhar Bhushan
Set asynchronous mode for this RPC.
833 216bb34c Shikhar Bhushan
\end{methoddesc}
834 216bb34c Shikhar Bhushan
\index{set\_timeout() (ncclient.operations.rpc.RPC method)}
835 216bb34c Shikhar Bhushan
836 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.set_timeout}{}\begin{methoddesc}{set\_timeout}{timeout}
837 216bb34c Shikhar Bhushan
Set the timeout for synchronous waiting defining how long the RPC
838 216bb34c Shikhar Bhushan
request will block on a reply before raising an error.
839 216bb34c Shikhar Bhushan
\end{methoddesc}
840 216bb34c Shikhar Bhushan
\index{reply (ncclient.operations.rpc.RPC attribute)}
841 216bb34c Shikhar Bhushan
842 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.reply}{}\begin{memberdesc}{reply}
843 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.rpc.RPCReply}{\code{RPCReply}} element if reply has been received or \href{http://docs.python.org/library/constants.html\#None}{\code{None}}
844 216bb34c Shikhar Bhushan
\end{memberdesc}
845 216bb34c Shikhar Bhushan
\index{error (ncclient.operations.rpc.RPC attribute)}
846 216bb34c Shikhar Bhushan
847 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.error}{}\begin{memberdesc}{error}
848 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/exceptions.html\#exceptions.Exception}{\code{Exception}} type if an error occured or \href{http://docs.python.org/library/constants.html\#None}{\code{None}}.
849 216bb34c Shikhar Bhushan
850 216bb34c Shikhar Bhushan
This attribute should be checked if the request was made asynchronously,
851 216bb34c Shikhar Bhushan
so that it can be determined if \hyperlink{ncclient.operations.rpc.RPC.event}{\code{event}} being set is because of a
852 216bb34c Shikhar Bhushan
reply or error.
853 216bb34c Shikhar Bhushan
854 216bb34c Shikhar Bhushan
\begin{notice}{note}{Note:}
855 216bb34c Shikhar Bhushan
This represents an error which prevented a reply from being
856 216bb34c Shikhar Bhushan
received. An \emph{\textless{}rpc-error\textgreater{}} does not fall in that category -- see
857 216bb34c Shikhar Bhushan
\hyperlink{ncclient.operations.rpc.RPCReply}{\code{RPCReply}} for that.
858 216bb34c Shikhar Bhushan
\end{notice}
859 216bb34c Shikhar Bhushan
\end{memberdesc}
860 216bb34c Shikhar Bhushan
\index{event (ncclient.operations.rpc.RPC attribute)}
861 216bb34c Shikhar Bhushan
862 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.event}{}\begin{memberdesc}{event}
863 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/threading.html\#threading.Event}{\code{Event}} that is set when reply has been received or
864 216bb34c Shikhar Bhushan
error occured.
865 216bb34c Shikhar Bhushan
\end{memberdesc}
866 216bb34c Shikhar Bhushan
\index{async (ncclient.operations.rpc.RPC attribute)}
867 216bb34c Shikhar Bhushan
868 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.async}{}\begin{memberdesc}{async}
869 216bb34c Shikhar Bhushan
Whether this RPC is asynchronous
870 216bb34c Shikhar Bhushan
\end{memberdesc}
871 216bb34c Shikhar Bhushan
\index{timeout (ncclient.operations.rpc.RPC attribute)}
872 216bb34c Shikhar Bhushan
873 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.timeout}{}\begin{memberdesc}{timeout}
874 216bb34c Shikhar Bhushan
Timeout for synchronous waiting
875 216bb34c Shikhar Bhushan
\end{memberdesc}
876 216bb34c Shikhar Bhushan
\index{id (ncclient.operations.rpc.RPC attribute)}
877 216bb34c Shikhar Bhushan
878 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.id}{}\begin{memberdesc}{id}
879 216bb34c Shikhar Bhushan
The \emph{message-id} for this RPC
880 216bb34c Shikhar Bhushan
\end{memberdesc}
881 216bb34c Shikhar Bhushan
\index{session (ncclient.operations.rpc.RPC attribute)}
882 216bb34c Shikhar Bhushan
883 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPC.session}{}\begin{memberdesc}{session}
884 216bb34c Shikhar Bhushan
The \hyperlink{ncclient.transport.Session}{\code{Session}} object associated with this
885 216bb34c Shikhar Bhushan
RPC
886 216bb34c Shikhar Bhushan
\end{memberdesc}
887 216bb34c Shikhar Bhushan
\end{classdesc}
888 216bb34c Shikhar Bhushan
\index{RPCReply (class in ncclient.operations.rpc)}
889 216bb34c Shikhar Bhushan
890 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCReply}{}\begin{classdesc}{RPCReply}{raw}
891 216bb34c Shikhar Bhushan
Represents an \emph{\textless{}rpc-reply\textgreater{}}. Only concerns itself with whether the
892 216bb34c Shikhar Bhushan
operation was successful.
893 216bb34c Shikhar Bhushan
894 216bb34c Shikhar Bhushan
\begin{notice}{note}{Note:}
895 216bb34c Shikhar Bhushan
If the reply has not yet been parsed there is an implicit, one-time
896 216bb34c Shikhar Bhushan
parsing overhead to accessing the attributes defined by this class and
897 216bb34c Shikhar Bhushan
any subclasses.
898 216bb34c Shikhar Bhushan
\end{notice}
899 216bb34c Shikhar Bhushan
\index{ok (ncclient.operations.rpc.RPCReply attribute)}
900 216bb34c Shikhar Bhushan
901 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCReply.ok}{}\begin{memberdesc}{ok}
902 216bb34c Shikhar Bhushan
Boolean value indicating if there were no errors.
903 216bb34c Shikhar Bhushan
\end{memberdesc}
904 216bb34c Shikhar Bhushan
\index{error (ncclient.operations.rpc.RPCReply attribute)}
905 216bb34c Shikhar Bhushan
906 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCReply.error}{}\begin{memberdesc}{error}
907 216bb34c Shikhar Bhushan
Short for \hyperlink{ncclient.operations.rpc.RPCReply.errors}{\code{errors}} {[}0{]}; \href{http://docs.python.org/library/constants.html\#None}{\code{None}} if there were no errors.
908 216bb34c Shikhar Bhushan
\end{memberdesc}
909 216bb34c Shikhar Bhushan
\index{errors (ncclient.operations.rpc.RPCReply attribute)}
910 216bb34c Shikhar Bhushan
911 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCReply.errors}{}\begin{memberdesc}{errors}
912 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/functions.html\#list}{\code{list}} of \hyperlink{ncclient.operations.rpc.RPCError}{\code{RPCError}} objects. Will be empty if there were no
913 216bb34c Shikhar Bhushan
\emph{\textless{}rpc-error\textgreater{}} elements in reply.
914 216bb34c Shikhar Bhushan
\end{memberdesc}
915 216bb34c Shikhar Bhushan
\end{classdesc}
916 216bb34c Shikhar Bhushan
\index{RPCError (class in ncclient.operations.rpc)}
917 216bb34c Shikhar Bhushan
918 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError}{}\begin{classdesc}{RPCError}{err\_dict}
919 216bb34c Shikhar Bhushan
Bases: \code{ncclient.operations.errors.OperationError}
920 216bb34c Shikhar Bhushan
921 216bb34c Shikhar Bhushan
Represents an \emph{\textless{}rpc-error\textgreater{}}. It is an instance of \code{OperationError}
922 216bb34c Shikhar Bhushan
so it can be raised like any other exception.
923 216bb34c Shikhar Bhushan
\index{type (ncclient.operations.rpc.RPCError attribute)}
924 216bb34c Shikhar Bhushan
925 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError.type}{}\begin{memberdesc}{type}
926 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}} represeting \emph{error-type} element
927 216bb34c Shikhar Bhushan
\end{memberdesc}
928 216bb34c Shikhar Bhushan
\index{severity (ncclient.operations.rpc.RPCError attribute)}
929 216bb34c Shikhar Bhushan
930 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError.severity}{}\begin{memberdesc}{severity}
931 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}} represeting \emph{error-severity} element
932 216bb34c Shikhar Bhushan
\end{memberdesc}
933 216bb34c Shikhar Bhushan
\index{tag (ncclient.operations.rpc.RPCError attribute)}
934 216bb34c Shikhar Bhushan
935 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError.tag}{}\begin{memberdesc}{tag}
936 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}} represeting \emph{error-tag} element
937 216bb34c Shikhar Bhushan
\end{memberdesc}
938 216bb34c Shikhar Bhushan
\index{path (ncclient.operations.rpc.RPCError attribute)}
939 216bb34c Shikhar Bhushan
940 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError.path}{}\begin{memberdesc}{path}
941 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/constants.html\#None}{\code{None}}; represeting \emph{error-path} element
942 216bb34c Shikhar Bhushan
\end{memberdesc}
943 216bb34c Shikhar Bhushan
\index{message (ncclient.operations.rpc.RPCError attribute)}
944 216bb34c Shikhar Bhushan
945 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError.message}{}\begin{memberdesc}{message}
946 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/constants.html\#None}{\code{None}}; represeting \emph{error-message} element
947 216bb34c Shikhar Bhushan
\end{memberdesc}
948 216bb34c Shikhar Bhushan
\index{info (ncclient.operations.rpc.RPCError attribute)}
949 216bb34c Shikhar Bhushan
950 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.rpc.RPCError.info}{}\begin{memberdesc}{info}
951 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/constants.html\#None}{\code{None}}, represeting \emph{error-info} element
952 216bb34c Shikhar Bhushan
\end{memberdesc}
953 216bb34c Shikhar Bhushan
\end{classdesc}
954 216bb34c Shikhar Bhushan
955 216bb34c Shikhar Bhushan
956 216bb34c Shikhar Bhushan
\subsection{NETCONF Operations}
957 216bb34c Shikhar Bhushan
958 216bb34c Shikhar Bhushan
959 216bb34c Shikhar Bhushan
\subsubsection{Dependencies}
960 216bb34c Shikhar Bhushan
961 216bb34c Shikhar Bhushan
Operations may have a hard dependency on some capability, or the dependency may arise at request-time due to an optional argument. In any case, a \hyperlink{ncclient.operations.MissingCapabilityError}{\code{MissingCapabilityError}} is raised if the server does not support the relevant capability.
962 216bb34c Shikhar Bhushan
\hypertarget{return}{}
963 216bb34c Shikhar Bhushan
964 216bb34c Shikhar Bhushan
\subsubsection{Return type}
965 216bb34c Shikhar Bhushan
966 216bb34c Shikhar Bhushan
The return type for the \code{request()} method depends of an operation on whether it is synchronous or asynchronous (see base class \code{RPC}).
967 216bb34c Shikhar Bhushan
\begin{itemize}
968 216bb34c Shikhar Bhushan
\item {} 
969 216bb34c Shikhar Bhushan
For synchronous requests, it will block waiting for the reply, and once it has been received an \code{RPCReply} object is returned. If an error occured while waiting for the reply, it will be raised.
970 216bb34c Shikhar Bhushan
971 216bb34c Shikhar Bhushan
\item {} 
972 216bb34c Shikhar Bhushan
For asynchronous requests, it will immediately return an \href{http://docs.python.org/library/threading.html\#threading.Event}{\code{Event}} object. This event is set when a reply is received, or an error occurs that prevents a reply from being received. The \code{reply} and \code{error} attributes can then be accessed to determine which of the two it was :-)
973 216bb34c Shikhar Bhushan
974 216bb34c Shikhar Bhushan
\end{itemize}
975 216bb34c Shikhar Bhushan
976 216bb34c Shikhar Bhushan
977 216bb34c Shikhar Bhushan
\subsubsection{General notes on parameters}
978 216bb34c Shikhar Bhushan
979 216bb34c Shikhar Bhushan
980 216bb34c Shikhar Bhushan
\hypertarget{source-target}{}\paragraph{Source / target parameters}
981 216bb34c Shikhar Bhushan
982 216bb34c Shikhar Bhushan
Where an operation takes a source or target parameter, it is mainly the case that it can be a datastore name or a URL. The latter, of course, depends on the \emph{:url} capability and whether the capability supports the specific schema of the URL. Either must be specified as a \href{http://docs.python.org/library/string.html\#string}{\code{string}}.
983 216bb34c Shikhar Bhushan
984 216bb34c Shikhar Bhushan
If the source may be a \emph{\textless{}config\textgreater{}} element, e.g. for \hyperlink{ncclient.operations.Validate}{\code{Validate}}, specify in \hyperlink{dtree}{\emph{DictTree XML representation}} with the root element as \emph{\textless{}config\textgreater{}}.
985 216bb34c Shikhar Bhushan
\hypertarget{filter}{}
986 216bb34c Shikhar Bhushan
987 216bb34c Shikhar Bhushan
\paragraph{Filter parameters}
988 216bb34c Shikhar Bhushan
989 216bb34c Shikhar Bhushan
Filter parameters, where applicable, can take one of the following types:
990 216bb34c Shikhar Bhushan
\begin{itemize}
991 216bb34c Shikhar Bhushan
\item {} \begin{description}
992 216bb34c Shikhar Bhushan
\item[A \href{http://docs.python.org/library/functions.html\#tuple}{\code{tuple}} of \emph{(type, criteria)}.]
993 216bb34c Shikhar Bhushan
Here type has to be one of ``xpath'' or ``subtree''. For type ``xpath'', the criteria should be a \href{http://docs.python.org/library/string.html\#string}{\code{string}} that is a valid XPath expression. For type ``subtree'', criteria should be in \hyperlink{dtree}{\emph{DictTree XML representation}} representing a valid subtree filter.
994 216bb34c Shikhar Bhushan
995 216bb34c Shikhar Bhushan
\end{description}
996 216bb34c Shikhar Bhushan
997 216bb34c Shikhar Bhushan
\item {} 
998 216bb34c Shikhar Bhushan
A valid \emph{\textless{}filter\textgreater{}} element in \hyperlink{dtree}{\emph{DictTree XML representation}}.
999 216bb34c Shikhar Bhushan
1000 216bb34c Shikhar Bhushan
\end{itemize}
1001 216bb34c Shikhar Bhushan
1002 216bb34c Shikhar Bhushan
1003 216bb34c Shikhar Bhushan
\subsubsection{Retrieval operations}
1004 216bb34c Shikhar Bhushan
1005 216bb34c Shikhar Bhushan
The reply object for these operations will be a \hyperlink{ncclient.operations.GetReply}{\code{GetReply}} instance.
1006 216bb34c Shikhar Bhushan
\index{Get (class in ncclient.operations)}
1007 216bb34c Shikhar Bhushan
1008 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Get}{}\begin{classdesc}{Get}{session, async=False, timeout=None}
1009 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1010 216bb34c Shikhar Bhushan
1011 216bb34c Shikhar Bhushan
The \emph{\textless{}get\textgreater{}} RPC
1012 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.Get method)}
1013 216bb34c Shikhar Bhushan
1014 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Get.request}{}\begin{methoddesc}{request}{filter=None}~\begin{quote}\begin{description}
1015 216bb34c Shikhar Bhushan
\item[Parameter]
1016 216bb34c Shikhar Bhushan
\emph{filter} -- optional; see \hyperlink{filter}{\emph{Filter parameters}}
1017 216bb34c Shikhar Bhushan
1018 216bb34c Shikhar Bhushan
\item[Seealso]
1019 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1020 216bb34c Shikhar Bhushan
1021 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1022 216bb34c Shikhar Bhushan
\end{methoddesc}
1023 216bb34c Shikhar Bhushan
\end{classdesc}
1024 216bb34c Shikhar Bhushan
\index{GetConfig (class in ncclient.operations)}
1025 216bb34c Shikhar Bhushan
1026 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetConfig}{}\begin{classdesc}{GetConfig}{session, async=False, timeout=None}
1027 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1028 216bb34c Shikhar Bhushan
1029 216bb34c Shikhar Bhushan
The \emph{\textless{}get-config\textgreater{}} RPC
1030 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.GetConfig method)}
1031 216bb34c Shikhar Bhushan
1032 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetConfig.request}{}\begin{methoddesc}{request}{source, filter=None}~\begin{quote}\begin{description}
1033 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
1034 216bb34c Shikhar Bhushan
\item {} 
1035 216bb34c Shikhar Bhushan
\emph{source} -- See \hyperlink{source-target}{\emph{Source / target parameters}}
1036 216bb34c Shikhar Bhushan
1037 216bb34c Shikhar Bhushan
\item {} 
1038 216bb34c Shikhar Bhushan
\emph{filter} -- optional; see \hyperlink{filter}{\emph{Filter parameters}}
1039 216bb34c Shikhar Bhushan
1040 216bb34c Shikhar Bhushan
\end{itemize}
1041 216bb34c Shikhar Bhushan
1042 216bb34c Shikhar Bhushan
\item[Seealso]
1043 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1044 216bb34c Shikhar Bhushan
1045 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1046 216bb34c Shikhar Bhushan
\end{methoddesc}
1047 216bb34c Shikhar Bhushan
\end{classdesc}
1048 216bb34c Shikhar Bhushan
\index{GetReply (class in ncclient.operations)}
1049 216bb34c Shikhar Bhushan
1050 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetReply}{}\begin{classdesc}{GetReply}{raw}
1051 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPCReply}{\code{ncclient.operations.rpc.RPCReply}}
1052 216bb34c Shikhar Bhushan
1053 216bb34c Shikhar Bhushan
Adds attributes for the \emph{\textless{}data\textgreater{}} element to \code{RPCReply}, which
1054 216bb34c Shikhar Bhushan
pertains to the \hyperlink{ncclient.operations.Get}{\code{Get}} and \hyperlink{ncclient.operations.GetConfig}{\code{GetConfig}} operations.
1055 216bb34c Shikhar Bhushan
\index{data (ncclient.operations.GetReply attribute)}
1056 216bb34c Shikhar Bhushan
1057 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetReply.data}{}\begin{memberdesc}{data}
1058 216bb34c Shikhar Bhushan
Same as \hyperlink{ncclient.operations.GetReply.data_ele}{\code{data\_ele}}
1059 216bb34c Shikhar Bhushan
\end{memberdesc}
1060 216bb34c Shikhar Bhushan
\index{data\_xml (ncclient.operations.GetReply attribute)}
1061 216bb34c Shikhar Bhushan
1062 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetReply.data_xml}{}\begin{memberdesc}{data\_xml}
1063 216bb34c Shikhar Bhushan
\emph{\textless{}data\textgreater{}} element as an XML string
1064 216bb34c Shikhar Bhushan
\end{memberdesc}
1065 216bb34c Shikhar Bhushan
\index{data\_dtree (ncclient.operations.GetReply attribute)}
1066 216bb34c Shikhar Bhushan
1067 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetReply.data_dtree}{}\begin{memberdesc}{data\_dtree}
1068 216bb34c Shikhar Bhushan
\emph{\textless{}data\textgreater{}} element in \hyperlink{dtree}{\emph{DictTree XML representation}}
1069 216bb34c Shikhar Bhushan
\end{memberdesc}
1070 216bb34c Shikhar Bhushan
\index{data\_ele (ncclient.operations.GetReply attribute)}
1071 216bb34c Shikhar Bhushan
1072 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.GetReply.data_ele}{}\begin{memberdesc}{data\_ele}
1073 216bb34c Shikhar Bhushan
\emph{\textless{}data\textgreater{}} element as an \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}
1074 216bb34c Shikhar Bhushan
\end{memberdesc}
1075 216bb34c Shikhar Bhushan
\end{classdesc}
1076 216bb34c Shikhar Bhushan
1077 216bb34c Shikhar Bhushan
1078 216bb34c Shikhar Bhushan
\subsubsection{Locking operations}
1079 216bb34c Shikhar Bhushan
\index{Lock (class in ncclient.operations)}
1080 216bb34c Shikhar Bhushan
1081 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Lock}{}\begin{classdesc}{Lock}{session, async=False, timeout=None}
1082 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1083 216bb34c Shikhar Bhushan
1084 216bb34c Shikhar Bhushan
\emph{\textless{}lock\textgreater{}} RPC
1085 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.Lock method)}
1086 216bb34c Shikhar Bhushan
1087 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Lock.request}{}\begin{methoddesc}{request}{target}~\begin{quote}\begin{description}
1088 216bb34c Shikhar Bhushan
\item[Parameter]
1089 216bb34c Shikhar Bhushan
\emph{target} (string) -- see \hyperlink{source-target}{\emph{Source / target parameters}}
1090 216bb34c Shikhar Bhushan
1091 216bb34c Shikhar Bhushan
\item[Return type]
1092 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1093 216bb34c Shikhar Bhushan
1094 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1095 216bb34c Shikhar Bhushan
\end{methoddesc}
1096 216bb34c Shikhar Bhushan
\end{classdesc}
1097 216bb34c Shikhar Bhushan
\index{Unlock (class in ncclient.operations)}
1098 216bb34c Shikhar Bhushan
1099 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Unlock}{}\begin{classdesc}{Unlock}{session, async=False, timeout=None}
1100 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1101 216bb34c Shikhar Bhushan
1102 216bb34c Shikhar Bhushan
\emph{\textless{}unlock\textgreater{}} RPC
1103 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.Unlock method)}
1104 216bb34c Shikhar Bhushan
1105 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Unlock.request}{}\begin{methoddesc}{request}{target}~\begin{quote}\begin{description}
1106 216bb34c Shikhar Bhushan
\item[Parameter]
1107 216bb34c Shikhar Bhushan
\emph{target} (string) -- see \hyperlink{source-target}{\emph{Source / target parameters}}
1108 216bb34c Shikhar Bhushan
1109 216bb34c Shikhar Bhushan
\item[Return type]
1110 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1111 216bb34c Shikhar Bhushan
1112 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1113 216bb34c Shikhar Bhushan
\end{methoddesc}
1114 216bb34c Shikhar Bhushan
\end{classdesc}
1115 216bb34c Shikhar Bhushan
1116 216bb34c Shikhar Bhushan
1117 216bb34c Shikhar Bhushan
\subsubsection{Configuration operations}
1118 216bb34c Shikhar Bhushan
\index{EditConfig (class in ncclient.operations)}
1119 216bb34c Shikhar Bhushan
1120 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.EditConfig}{}\begin{classdesc}{EditConfig}{session, async=False, timeout=None}
1121 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1122 216bb34c Shikhar Bhushan
1123 216bb34c Shikhar Bhushan
\emph{\textless{}edit-config\textgreater{}} RPC
1124 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.EditConfig method)}
1125 216bb34c Shikhar Bhushan
1126 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.EditConfig.request}{}\begin{methoddesc}{request}{target, config, default\_operation=None, test\_option=None, error\_option=None}~\begin{quote}\begin{description}
1127 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
1128 216bb34c Shikhar Bhushan
\item {} 
1129 216bb34c Shikhar Bhushan
\emph{target} (string) -- see \hyperlink{source-target}{\emph{Source / target parameters}}
1130 216bb34c Shikhar Bhushan
1131 216bb34c Shikhar Bhushan
\item {} 
1132 216bb34c Shikhar Bhushan
\emph{config} (\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}} or \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}) -- a config element in \hyperlink{dtree}{\emph{DictTree XML representation}}
1133 216bb34c Shikhar Bhushan
1134 216bb34c Shikhar Bhushan
\item {} 
1135 216bb34c Shikhar Bhushan
\emph{default\_operation} (\href{http://docs.python.org/library/string.html\#string}{\code{string}}) -- optional; one of \{`merge', `replace', `none'\}
1136 216bb34c Shikhar Bhushan
1137 216bb34c Shikhar Bhushan
\item {} 
1138 216bb34c Shikhar Bhushan
\emph{test\_option} (string) -- optional; one of \{`stop-on-error', `continue-on-error', `rollback-on-error'\}. Last option depends on the \emph{:rollback-on-error} capability
1139 216bb34c Shikhar Bhushan
1140 216bb34c Shikhar Bhushan
\end{itemize}
1141 216bb34c Shikhar Bhushan
1142 216bb34c Shikhar Bhushan
\item[Seealso]
1143 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1144 216bb34c Shikhar Bhushan
1145 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1146 216bb34c Shikhar Bhushan
\end{methoddesc}
1147 216bb34c Shikhar Bhushan
\end{classdesc}
1148 216bb34c Shikhar Bhushan
\index{CopyConfig (class in ncclient.operations)}
1149 216bb34c Shikhar Bhushan
1150 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.CopyConfig}{}\begin{classdesc}{CopyConfig}{session, async=False, timeout=None}
1151 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1152 216bb34c Shikhar Bhushan
1153 216bb34c Shikhar Bhushan
\emph{\textless{}copy-config\textgreater{}} RPC
1154 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.CopyConfig method)}
1155 216bb34c Shikhar Bhushan
1156 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.CopyConfig.request}{}\begin{methoddesc}{request}{source, target}~\begin{quote}\begin{description}
1157 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
1158 216bb34c Shikhar Bhushan
\item {} 
1159 216bb34c Shikhar Bhushan
\emph{source} (\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}} or \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}) -- See \hyperlink{source-target}{\emph{Source / target parameters}}
1160 216bb34c Shikhar Bhushan
1161 216bb34c Shikhar Bhushan
\item {} 
1162 216bb34c Shikhar Bhushan
\emph{target} (\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}} or \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}) -- See \hyperlink{source-target}{\emph{Source / target parameters}}
1163 216bb34c Shikhar Bhushan
1164 216bb34c Shikhar Bhushan
\end{itemize}
1165 216bb34c Shikhar Bhushan
1166 216bb34c Shikhar Bhushan
\item[Seealso]
1167 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1168 216bb34c Shikhar Bhushan
1169 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1170 216bb34c Shikhar Bhushan
\end{methoddesc}
1171 216bb34c Shikhar Bhushan
\end{classdesc}
1172 216bb34c Shikhar Bhushan
\index{DeleteConfig (class in ncclient.operations)}
1173 216bb34c Shikhar Bhushan
1174 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.DeleteConfig}{}\begin{classdesc}{DeleteConfig}{session, async=False, timeout=None}
1175 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1176 216bb34c Shikhar Bhushan
1177 216bb34c Shikhar Bhushan
\emph{\textless{}delete-config\textgreater{}} RPC
1178 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.DeleteConfig method)}
1179 216bb34c Shikhar Bhushan
1180 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.DeleteConfig.request}{}\begin{methoddesc}{request}{target}~\begin{quote}\begin{description}
1181 216bb34c Shikhar Bhushan
\item[Parameter]
1182 216bb34c Shikhar Bhushan
\emph{target} (\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}} or \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}) -- See \hyperlink{source-target}{\emph{Source / target parameters}}
1183 216bb34c Shikhar Bhushan
1184 216bb34c Shikhar Bhushan
\item[Seealso]
1185 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1186 216bb34c Shikhar Bhushan
1187 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1188 216bb34c Shikhar Bhushan
\end{methoddesc}
1189 216bb34c Shikhar Bhushan
\end{classdesc}
1190 216bb34c Shikhar Bhushan
\index{Validate (class in ncclient.operations)}
1191 216bb34c Shikhar Bhushan
1192 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Validate}{}\begin{classdesc}{Validate}{session, async=False, timeout=None}
1193 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1194 216bb34c Shikhar Bhushan
1195 216bb34c Shikhar Bhushan
\emph{\textless{}validate\textgreater{}} RPC. Depends on the \emph{:validate} capability.
1196 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.Validate method)}
1197 216bb34c Shikhar Bhushan
1198 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Validate.request}{}\begin{methoddesc}{request}{source}~\begin{quote}\begin{description}
1199 216bb34c Shikhar Bhushan
\item[Parameter]
1200 216bb34c Shikhar Bhushan
\emph{source} (\href{http://docs.python.org/library/string.html\#string}{\code{string}} or \href{http://docs.python.org/library/stdtypes.html\#dict}{\code{dict}} or \href{http://docs.python.org/library/xml.etree.elementtree.html\#xml.etree.ElementTree.Element}{\code{Element}}) -- See \hyperlink{source-target}{\emph{Source / target parameters}}
1201 216bb34c Shikhar Bhushan
1202 216bb34c Shikhar Bhushan
\item[Seealso]
1203 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1204 216bb34c Shikhar Bhushan
1205 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1206 216bb34c Shikhar Bhushan
\end{methoddesc}
1207 216bb34c Shikhar Bhushan
\end{classdesc}
1208 216bb34c Shikhar Bhushan
\index{Commit (class in ncclient.operations)}
1209 216bb34c Shikhar Bhushan
1210 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Commit}{}\begin{classdesc}{Commit}{session, async=False, timeout=None}
1211 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1212 216bb34c Shikhar Bhushan
1213 216bb34c Shikhar Bhushan
\emph{\textless{}commit\textgreater{}} RPC. Depends on the \emph{:candidate} capability.
1214 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.Commit method)}
1215 216bb34c Shikhar Bhushan
1216 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.Commit.request}{}\begin{methoddesc}{request}{confirmed=False, timeout=None}
1217 216bb34c Shikhar Bhushan
Requires \emph{:confirmed-commit} capability if \emph{confirmed} argument is
1218 216bb34c Shikhar Bhushan
\href{http://docs.python.org/library/constants.html\#True}{\code{True}}.
1219 216bb34c Shikhar Bhushan
\begin{quote}\begin{description}
1220 216bb34c Shikhar Bhushan
\item[Parameters]\begin{itemize}
1221 216bb34c Shikhar Bhushan
\item {} 
1222 216bb34c Shikhar Bhushan
\emph{confirmed} (\href{http://docs.python.org/library/functions.html\#bool}{\code{bool}}) -- optional; request a confirmed commit
1223 216bb34c Shikhar Bhushan
1224 216bb34c Shikhar Bhushan
\item {} 
1225 216bb34c Shikhar Bhushan
\emph{timeout} (\href{http://docs.python.org/library/functions.html\#int}{\code{int}}) -- specify timeout for confirmed commit
1226 216bb34c Shikhar Bhushan
1227 216bb34c Shikhar Bhushan
\end{itemize}
1228 216bb34c Shikhar Bhushan
1229 216bb34c Shikhar Bhushan
\item[Seealso]
1230 216bb34c Shikhar Bhushan
\hyperlink{return}{\emph{Return type}}
1231 216bb34c Shikhar Bhushan
1232 216bb34c Shikhar Bhushan
\end{description}\end{quote}
1233 216bb34c Shikhar Bhushan
\end{methoddesc}
1234 216bb34c Shikhar Bhushan
\end{classdesc}
1235 216bb34c Shikhar Bhushan
\index{DiscardChanges (class in ncclient.operations)}
1236 216bb34c Shikhar Bhushan
1237 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.DiscardChanges}{}\begin{classdesc}{DiscardChanges}{session, async=False, timeout=None}
1238 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1239 216bb34c Shikhar Bhushan
1240 216bb34c Shikhar Bhushan
\emph{\textless{}discard-changes\textgreater{}} RPC. Depends on the \emph{:candidate} capability.
1241 216bb34c Shikhar Bhushan
\index{request() (ncclient.operations.DiscardChanges method)}
1242 216bb34c Shikhar Bhushan
1243 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.DiscardChanges.request}{}\begin{methoddesc}{request}{*args, **kwds}
1244 216bb34c Shikhar Bhushan
Subclasses implement this method. Here, the operation is constructed
1245 216bb34c Shikhar Bhushan
in \hyperlink{dtree}{\emph{DictTree XML representation}}, and the result of \code{\_request()} returned.
1246 216bb34c Shikhar Bhushan
\end{methoddesc}
1247 216bb34c Shikhar Bhushan
\end{classdesc}
1248 216bb34c Shikhar Bhushan
1249 216bb34c Shikhar Bhushan
1250 216bb34c Shikhar Bhushan
\subsubsection{Session management operations}
1251 216bb34c Shikhar Bhushan
\index{CloseSession (class in ncclient.operations)}
1252 216bb34c Shikhar Bhushan
1253 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.CloseSession}{}\begin{classdesc}{CloseSession}{session, async=False, timeout=None}
1254 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1255 216bb34c Shikhar Bhushan
1256 216bb34c Shikhar Bhushan
\emph{\textless{}close-session\textgreater{}} RPC. The connection to NETCONF server is also closed.
1257 216bb34c Shikhar Bhushan
\end{classdesc}
1258 216bb34c Shikhar Bhushan
\index{KillSession (class in ncclient.operations)}
1259 216bb34c Shikhar Bhushan
1260 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.KillSession}{}\begin{classdesc}{KillSession}{session, async=False, timeout=None}
1261 216bb34c Shikhar Bhushan
Bases: \hyperlink{ncclient.operations.rpc.RPC}{\code{ncclient.operations.rpc.RPC}}
1262 216bb34c Shikhar Bhushan
1263 216bb34c Shikhar Bhushan
\emph{\textless{}kill-session\textgreater{}} RPC.
1264 216bb34c Shikhar Bhushan
\end{classdesc}
1265 216bb34c Shikhar Bhushan
1266 216bb34c Shikhar Bhushan
1267 216bb34c Shikhar Bhushan
\subsubsection{Also useful}
1268 216bb34c Shikhar Bhushan
\index{LockContext (class in ncclient.operations)}
1269 216bb34c Shikhar Bhushan
1270 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.LockContext}{}\begin{classdesc}{LockContext}{session, target}
1271 216bb34c Shikhar Bhushan
A context manager for the \hyperlink{ncclient.operations.Lock}{\code{Lock}} / \hyperlink{ncclient.operations.Unlock}{\code{Unlock}} pair of RPC's.
1272 216bb34c Shikhar Bhushan
1273 216bb34c Shikhar Bhushan
Initialise with session instance (\hyperlink{ncclient.transport.Session}{\code{Session}}) and lock target (\hyperlink{source-target}{\emph{Source / target parameters}})
1274 216bb34c Shikhar Bhushan
\end{classdesc}
1275 216bb34c Shikhar Bhushan
1276 216bb34c Shikhar Bhushan
1277 216bb34c Shikhar Bhushan
\subsection{Errors}
1278 216bb34c Shikhar Bhushan
\index{OperationError}
1279 216bb34c Shikhar Bhushan
1280 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.OperationError}{}\begin{excdesc}{OperationError}
1281 216bb34c Shikhar Bhushan
Bases: \code{ncclient.NCClientError}
1282 216bb34c Shikhar Bhushan
\end{excdesc}
1283 216bb34c Shikhar Bhushan
\index{TimeoutExpiredError}
1284 216bb34c Shikhar Bhushan
1285 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.TimeoutExpiredError}{}\begin{excdesc}{TimeoutExpiredError}
1286 216bb34c Shikhar Bhushan
Bases: \code{ncclient.NCClientError}
1287 216bb34c Shikhar Bhushan
\end{excdesc}
1288 216bb34c Shikhar Bhushan
\index{MissingCapabilityError}
1289 216bb34c Shikhar Bhushan
1290 216bb34c Shikhar Bhushan
\hypertarget{ncclient.operations.MissingCapabilityError}{}\begin{excdesc}{MissingCapabilityError}
1291 216bb34c Shikhar Bhushan
Bases: \code{ncclient.NCClientError}
1292 216bb34c Shikhar Bhushan
\end{excdesc}
1293 216bb34c Shikhar Bhushan
1294 216bb34c Shikhar Bhushan
\resetcurrentobjects
1295 216bb34c Shikhar Bhushan
\hypertarget{--doc-extending}{}
1296 216bb34c Shikhar Bhushan
1297 216bb34c Shikhar Bhushan
\hypertarget{extending}{}\chapter{Extending NCClient}
1298 216bb34c Shikhar Bhushan
1299 216bb34c Shikhar Bhushan
This is written in a `how-to' style through code examples.
1300 216bb34c Shikhar Bhushan
1301 216bb34c Shikhar Bhushan
\emph{Forthcoming}
1302 216bb34c Shikhar Bhushan
1303 216bb34c Shikhar Bhushan
1304 216bb34c Shikhar Bhushan
\renewcommand{\indexname}{Module Index}
1305 216bb34c Shikhar Bhushan
\printmodindex
1306 216bb34c Shikhar Bhushan
\renewcommand{\indexname}{Index}
1307 216bb34c Shikhar Bhushan
\printindex
1308 216bb34c Shikhar Bhushan
\end{document}