To generate a custom warning, error, or system log message, follow these steps:
You must include either the XSLT or SLAX boilerplate in all commit scripts. For detailed information about this boilerplate, see Boilerplate for Commit Scripts.
XSLT Boilerplate
<?xml version="1.0" standalone="yes"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:junos="http://xml.juniper.net/junos/*/junos"
xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm"
xmlns:jcs="http://xml.juniper.net/junos/commit-scripts/1.0">
<xsl:import href="../import/junos.xsl"/>
<xsl:template match="configuration">
<!- - ... insert your code here ... - ->
</xsl:template>
</xsl:stylesheet>
SLAX Boilerplate
version 1.0;
ns junos = "http://xml.juniper.net/junos/*/junos";
ns xnm = "http://xml.juniper.net/xnm/1.1/xnm";
ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0";
import "../import/junos.xsl";
match configuration {
/*
* Insert your code here.
*/
}
For example, the following programming instruction evaluates as true when the source-route statement is not included at the [edit chassis] hierarchy level:
- <xsl:if test="not(chassis/source-route)">
In SLAX, the if construct looks like this:
- if (not(chassis/source-route))
For more information about how to use programming instructions, including examples and pseudocode, see Programming Instructions. For information about writing your scripts in SLAX instead of XSLT, see Understanding SLAX.
For warning and error messages, you can include several other child elements, such as the <jcs:edit-path> and <jcs:statement> templates, which cause the warning or error message to include the relevant configuration hierarchy and statement information, as shown in the following examples.
This <xnm:warning> element:
<xnm:warning>
<xsl:call-template name="jcs:edit-path">
<xsl:with-param name="dot" select="chassis"/>
</xsl:call-template>
<message>IP source-route processing is not enabled.</message>
</xnm:warning>
emits this output when you issue the commit command:
[edit]
user@host# commit
[edit chassis]
warning: IP source-route processing is not enabled.
commit complete
This <xnm:error> element:
<xnm:error>
<xsl:call-template name="jcs:edit-path"/>
<xsl:call-template name="jcs:statement"/>
<message>Missing a description for this T1 interface.</message>
</xnm:error>
emits this output when you issue the commit command:
[edit]
user@host# commit
[edit interfaces interface t1-0/0/0]
'interface t1-0/0/0;'
Missing a description for this T1 interface.
error: 1 error reported by commit scripts
error: commit script failure
![]() |
Note: If you are including a warning message in conjunction with a script-generated configuration change, you can generate the warning by including the message parameter with the <jcs:emit-change> template. The message parameter causes the <jcs:emit-change> template to call the <xnm:warning> template, which sends a warning notification to the CLI. (For more information, see Generating a Persistent or Transient Configuration Change.) |
For system log messages, the only supported child element is <message>:
<syslog>
<message>syslog-string</message>
</syslog>
For a description of all the XSLT tags and attributes you can include, see Message Tags.
For SLAX versions of these constructs, see SLAX Syntax, SLAX Syntax, and SLAX Syntax.
If a platform has dual Routing Engines and you want the script to take effect on both Routing Engines, you must copy the script to the /var/db/scripts/commit or the /config/scripts/commit directory on each Routing Engine. The commit synchronize command does not automatically copy the scripts from one Routing Engine directory into the other Routing Engine directory.
- [edit system scripts commit]
-
file filename;