Skip to content
Phil Shafer edited this page Jul 9, 2013 · 3 revisions

Introduction to JUISE

JUISE is the JUNOS User Interface Scripting Environment, which allow the development, testing, and execution of SLAX scripts that target JUNOS. JUNOS supports four types of scripts:

  • commit scripts enforce custom rules during the "commit" operation
  • op scripts define new commands for the JUNOS CLI
  • event scripts are triggered by events within JUNOS
  • login scripts are executed when a user logs into JUNOS

Currently only commit and op scripts are supported.

By exporting the scripting environment from JUNOS into the open source world, we allow the user to work with scripts from their own familar work environment, easing the work involved in authoring scripts.

JUISE also allows scripts to be executed independently of JUNOS, so the cost or impact of deploying scripts on the box is removed. JUISE commands can be executed from the user shell as normal commands, or be integrated into other network management tools.

The project builds on libslax, the open-source implementation of the SLAX language, which is used internal in JUNOS. SLAX is a syntactic variant of XSLT, the W3C language for XML-to-XML transformations. XSLT scripts read XML input data and produce XML output. Given the abilities of JUNOS for producing and consuming XML data, this was the obvious choice for an on-box scripting langauge. XSLT is small and simple, with a declarative style that matches the needs of script writers. SLAX addresses readability concerns with XSLT, casting the same constructs in a grammar that resembles C and Perl. See the libslax project page for more information.

JUISE includes the set of extension functions that are JUNOS specific, including the functions to open NETCONF connections and invoke NETCONF RPCs. The "juise" tool uses these connections to mimic the normal operation of scripts inside JUNOS, allows for remote development and testing of SLAX scripts for JUNOS without needing to copy files to and from JUNOS devices.

In addition, JUISE serves as a vehicle for other related projects revolving around script development. These projects are still under development.

See the history section of the manual for additional information.

If we knew what it was we were doing, it would not be called
research, would it?
    -- Albert Einstein
Clone this wiki locally