execute() Function (SLAX and XSLT)
Function introduced in Junos OS Release 9.3.
Execute a remote procedure call (RPC) within the context of a specific management session in SLAX
and XSLT automation scripts. Any number of RPCs may be executed within
the same session until the session is closed with the
jcs:close() function. This is in contrast to the
jcs:invoke() function, which also performs RPC calls,
but uses a unique session per command.
Python automation scripts can use Junos PyEZ APIs to execute RPCs on a local or remote device.
connection—Connection handle generated by a call to the
rpc—Remote procedure call (RPC) to execute.
result—Results of the executed RPC, which include the contents of the
<rpc-reply>element, but not the
<rpc-reply>tag itself. This
$resultvariable is the same as that produced by the
jcs:invoke()function. By default, the results are in XML format equivalent to the output produced with the | display xml option in the CLI.
In the following example, the
$rpc variable is declared and initialized with the Junos XML
<get-interface-information> element. A call to the
jcs:open() function generates a connection handle to
the remote device at IP address 198.51.100.1. The user’s login
and password are provided as arguments to
jcs:open() to provide access to the remote device. The code calls
jcs:execute() and passes in the connection handle and
RPC as arguments. Junos OS on the remote device processes the RPC
and returns the results, which are stored in the
var $rpc = <get-interface-information>; var $connection = jcs:open('198.51.100.1', 'bsmith', 'test123'); var $results = jcs:execute($connection, $rpc); expr $results;
The equivalent XSLT code is:
<xsl:variable name="connection" select="jcs:open('198.51.100.1', 'bsmith', 'test123')"/> <xsl:variable name="rpc"> <get-interface-information/> </xsl:variable> <xsl:variable name="results" select="jcs:execute($connection, $rpc)"/> <xsl:value-of select="$results"/>