スクリプトの例
以下は、PICをオフラインにするスクリプトです。
スクリプトには、@CONTEXT、@NAME、@DESCRIPTION、および @CONFIRMATION の 4 つの属性が関連付けられています。これらの属性は、コメント (/* */) 内で指定されます。
@CONTEXT 属性は、スクリプトを実行できるコンテキストを示します。
@NAME 属性はスクリプトの記述名を定義し、@DESCRIPTION はスクリプトの説明を定義します。
@CONFIRMATIONは、スクリプトを実行する前に確認のためにユーザーに表示するテキストを定義します。これは、スクリプトが誤って実行されるのを防ぐためです。
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; } } } } } }