Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Announcement: Try the Ask AI chatbot for answers to your technical questions about Juniper products and solutions.

close
header-navigation
keyboard_arrow_up
close
keyboard_arrow_left
Workspaces User Guide
Table of Contents Expand all
list Table of Contents
file_download PDF
{ "lLangCode": "en", "lName": "English", "lCountryCode": "us", "transcode": "en_US" }
English
keyboard_arrow_right

Script Example

Release: Junos Space 22.2
{}
Change Release
date_range 27-Sep-22

The following is the script to take PIC offline.

A script has four associated attributes, @CONTEXT, @NAME, @DESCRIPTION and @CONFIRMATION. These attributes are given within comments (/* */).

The @CONTEXT attribute states, what context the script can be executed on.

The @NAME attribute defines the descriptive name of the script and @DESCRIPTION defines the description of the script.

The @CONFIRMATION defines the text that should be shown to the user for confirmation before the script gets executed. This is to prevent accidental execution of scripts.

content_copy zoom_out_map
Version 1.0;
import "../import/junos.xsl"; 
import "cim-lib.slax"; 
 
/* Junos Space specific context, name and description */ 
/* @CONTEXT = "/device/chassis-inventory/chassis/chassis-module
[starts-with(name,"FPC")]/chassis-sub-module[starts-with(name,"PIC")]" */ 
/* @NAME = "Put PIC Offline" */ 
/* @DESCRIPTION = "Take PIC offline." */ 
/* @CONFIRMATION = "Are you sure that you want to take the PIC offline?" */ 
/* @EXECUTIONTYPE = "SINGLEEXECUTION" */
/*@VARIABLECONTEXT="[{'name':'XPATHVARIABLE1','defaultvalue':'mydefaultvalue',
'parameterscope':'devicespecific'},
{'name':'XPATHVARIABLE2','configuredvaluexpath':'/device/interface-information/
physical-interface/name/text()','parameterscope':'entityspecific'},
{'name':'XPATHVARIABLE3','selectionvaluesxpath':'/device/interface-information/
physical-interface/name/text()','parameterscope':'global'}]"*/
/* Global variables */ 
var $scriptname = "op-pic-offline.slax"; 
var $results; 
var $regex; 
var $result-regex; 

var $arguments = {
    <argument> {
        <name> "CONTEXT";
        <description> "The context associated with this script.";
    }
}
param $CONTEXT;
match / {
    <op-script-results> {
        var $regex = "/device/chassis-inventory/chassis\\[name=\"(.*)\"\\]/chassis-module\\[name=\"(.* ([0-9]+))\"\\]/chassis-sub-module\\[name=\"(.* ([0-9]+))\"\\]";
        var $result-regex = jcs:regex( $regex , $CONTEXT );
        
        /* Request PIC offline */
        var $command = {
            <command> "request chassis pic offline fpc-slot " _ $result-regex[4] _ " pic-slot " _ $result-regex[6];
        }
        var $results = jcs:invoke($command);
         
        /* Error check */
        call cim:error-check( $results-to-check = $results , $sev = "external.error" , $script = $scriptname , $cmd = $command , $log = "no" );
        
        <output> {
            <HTML> {
                <HEAD> {
                    <title> "PIC offline";
                    <style type="text/css"> {
                        expr "body { font-family: Verdana, Georgia, Arial, sans-serif;font-size: 12px;color:#fff;}";
                        expr "td { font-family: Verdana, Georgia, Arial, sans-serif;font-size: 12px;color:#fff;}";
                        expr "p { font-family: Verdana, Georgia, Arial, sans-serif;font-size: 12px;color:#fff;}";
                    }
                }
                <BODY bgcolor="transparent"> {
                    <p> {
                        copy-of $results;
                    }
                }
            }
        }
    }
}
footer-navigation