[Contents] [Prev] [Next] [Index] [Report an Error]

Generating a Custom Warning, Error, or System Log Message

To generate a custom warning, error, or system log message, follow these steps:

  1. Include the following Extensible Stylesheet Language Transformations (XSLT) or Stylesheet Language Alternative Syntax (SLAX) template boilerplate.

    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.
        */
    }
  2. Include one or more XSLT programming instructions or equivalent SLAX instructions. A few common XSLT constructs are shown here. (For detailed information, see Summary of XPath and XSLT Functions, Elements, Attributes, and Templates and Summary of SLAX Statements.)
  3. Include the <xnm:warning>, <xnm:error>, or <syslog> element with the <message> child element. You use the <message> child element to specify the content of the message.

    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.

  4. After you are finished with your commit script, save the script with the name filename.
  5. Depending on whether you load your scripts from your flash drive or your hard drive, copy the script to he /config/scripts/commit or the /var/db/scripts/commit directory on your routing platform. For more information on commit scripts and the memory location, see Storing the Commit Scripts

    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.

  6. Enable the script by including the file statement at the [edit system scripts commit] hierarchy level:
    [edit system scripts commit]
    file filename;

[Contents] [Prev] [Next] [Index] [Report an Error]