操作スクリプトの基本要件
運用(op)スクリプトの場合、スクリプトがトラブルシューティング操作から実行されると、コンテキストがスクリプトに送信されるため、コンテキストは必須引数です。スクリプトにプッシュされる引数の形式は次のとおりです。
var $arguments = { <argument> { <name> "CONTEXT"; <description> "The CONTEXT."; } } var $CONTEXT;
コンテキストにはサービスの種類に基づくパラメーターがあり、パラメーターを使用するには解析する必要があります。
以下は、E-Line LDP サービス コンテキストの例です。
コンテキスト: /device[name="deviceName"]/configuration/protocols/l2circuit/neighbor[name="neighbor IP"]/interface[name="interfaceName.unitID"]
コンテキストを解析するための op スクリプトのコードは次のとおりです。
var $tempContext = str:replace(str:replace($CONTEXT, "/device[name=\"", ""), "\"]/configuration/protocols/l2circuit/neighbor[name=\"", "|"); var $finalContext = str:replace(str:replace($tempContext, "\"]/interface[name=\"", "|"), "\"]", ""); var $variables = jcs:split( "\\|", $finalContext ); var $deviceName = $variables[1]; var $neighborIp = $variables[2]; var $interfaceName = $variables[3];
以下は、E-Line BGPサービスコンテキストの例です。
コンテキスト: /device[name="デバイス名"]/configuration/routing-instances/instance[name="サービス名" and instance-type="l2vpn"]/bgp/interface[name="interfaceName.unitID"]
コンテキストを解析するための op スクリプトのコードは次のとおりです。
var $tempContext1 = str:replace(str:replace($CONTEXT, "/device[name=\"", ""), "\"]/configuration/routing-instances/instance[name=\"", "|"); var $tempContext2 = str:replace($tempContext1, "\" and instance-type=\"l2vpn\"]", ""); var $finalContext = str:replace(str:replace($tempContext2, "/bgp/interface[name=\"", "|"), "\"]", ""); var $variables = jcs:split( "\\|", $finalContext ); var $deviceName = $variables[1]; var $instanceName = $variables[2]; var $interfaceName = $variables[3];
次に、E-Line E-LAN サービス コンテキストの例を示します。
コンテキスト: /device[name="device name"]/configuration/routing-instances/instance[name="サービス名" and instance-type="vpls"]/vpls/interface[name="interfaceName.unitID"]
コンテキストを解析するための op スクリプトのコードは次のとおりです。
var $tempContext1 = str:replace(str:replace($CONTEXT, "/device[name=\"", ""), "\"]/configuration/routing-instances/instance[name=\"", "|"); var $tempContext2 = str:replace($tempContext1, "\" and instance-type=\"vpls\"]", ""); var $finalContext = str:replace(str:replace($tempContext2, "/vpls/interface[name=\"", "|"), "\"]", ""); var $variables = jcs:split( "\\|", $finalContext ); var $deviceName = $variables[1]; var $instanceName = $variables[2]; var $interfaceName = $variables[3];
以下は、E-Line IP サービス コンテキストの例です。
コンテキスト:/device[name="device name"]/configuration/routing-instances/instance[name="サービス名" and instance-type="vrf"]/vrf/interface[name="interfaceName.unitID"]
コンテキストを解析するためのopスクリプトのコード:
var $tempContext1 = str:replace(str:replace($CONTEXT, "/device[name=\"", ""), "\"]/configuration/routing-instances/instance[name=\"", "|"); var $tempContext2 = str:replace($tempContext1, "\" and instance-type=\"vrf\"]", ""); var $finalContext = str:replace(str:replace($tempContext2, "/vrf/interface[name=\"", "|"), "\"]", ""); var $variables = jcs:split( "\\|", $finalContext ); var $deviceName = $variables[1]; var $instanceName = $variables[2]; var $interfaceName = $variables[3];
トラブルシューティング用の定義済みスクリプト
Connectivity Services Directorのインストール時に、定義済みのトラブルシューティングスクリプトがデフォルトで含まれています。以下は、各サービスのスクリプト名と、それらでサポートされるコマンドです。
E-Line LDPサービス
P2PLDPPredefinedScript.slax は、アップロードされる定義済みスクリプトです。
サポートされているコマンドは次のとおりです。
get-l2ckt-connection-information (英語)
インターフェイス情報の取得
LDPセッション情報の取得
LDP ネイバー情報の取得
E-Line BGPサービス
P2PBGPPredefinedScript.slax は、アップロードされる定義済みスクリプトです。
サポートされているコマンドは次のとおりです。
get-l2vpn-connection-information
インターフェイス情報の取得
get-bgp-summary-information
get-interface-statistics
E-LANサービス
VPLSPredefinedScript.slax は、アップロードされる定義済みスクリプトです。
サポートされているコマンドは次のとおりです。
get-vpls-connection-information
インターフェイス情報の取得
get-interface-statistics
IPサービス
L3VPNPredefinedScript.slax は、アップロードされる定義済みスクリプトです。
サポートされているコマンドは次のとおりです。
get-vrrp-connection-information
インターフェイス情報の取得
get-interface-statistics
RSVP LSPサービス
RSVPLSPPredefinedScript.slax は、アップロードされる定義済みスクリプトです。
サポートされているコマンドは次のとおりです。
get-mpls-connection-information
get-mpls-lsp-information