invoke() Function (SLAX and XSLT)
Namespaces
http://xml.juniper.net/junos/commit-scripts/1.0
SLAX Syntax
var $result = jcs:invoke(rpc, "no-login-logout");
XSLT Syntax
<xsl:variable name="result" select="jcs:invoke(rpc)"/>
Description
Invoke a remote procedure call (RPC) on the local device. The function
requires one argument, either a string containing a Junos XML API RPC, or a tree
containing an RPC. The result contains the contents of the
<rpc-reply>
element, not including the
<rpc-reply>
tag. An RPC allows you to perform functions
equivalent to Junos OS operational mode commands.
Python automation scripts can use Junos PyEZ APIs to execute RPCs on a local or remote device.
Parameters
rpc |
String containing a Junos XML API RPC or a tree containing an RPC. |
no-login-logout |
(Optional) In SLAX commit and event scripts, suppress UI_LOGIN_EVENT and UI_LOGOUT_EVENT messages in system log files when the script logs in as root to execute the RPC. |
Return Value
result |
Results of the executed RPC, which include the contents of the
|
Usage Examples
The following example tests to see if the interface
argument is
included on the command line when the script is executed. If the argument is
provided, the output of the show interfaces terse
operational mode
command is narrowed to include only information about the specified interface.
<xsl:param name="interface"/> <xsl:variable name="rpc"> <get-interface-information> <terse/> <xsl:if test="$interface"> <interface-name> <xsl:value-of select="$interface"/> </interface-name> </xsl:if> </get-interface-information> </xsl:variable> <xsl:variable name="out" select="jcs:invoke($rpc)"/>
In this example, the jcs:invoke()
function calls the Junos XML API
RPC get-software-information
, and stores the unmodified output in
the variable sw
:
<xsl:variable name="sw" select="jcs:invoke('get-software-information')"/>
Release Information
Function introduced in Junos OS Release 7.6.
no-login-logout
parameter added in Junos OS Release 21.1R1 for
commit and event scripts.