Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

サンプル コミット スクリプトの行ごとの説明

SONET/SDH インターフェイスへの変更の適用

次の XSLT コミット スクリプトは、カプセル化を に設定して、名前が で so-始まる各インターフェイスに一時変更を ppp適用します。一時的な変更については、 コミットスクリプトを使用した永続的または一時的な設定変更の生成の概要を参照してください。この例の SLAX バージョンについては、「 例: 一時変更の生成」を参照してください。

行 1~8 は、 コミット スクリプトに必要な定型文で説明されている定型的 なものであり、簡潔にするためにここでは省略しています。

9行目は、 <xsl:for-each> 名前が「so-」で始まり、任意の論理ユニットで有効になっている family inet 各インターフェイスノードを調べるプログラミング命令です。(ここでは簡潔にするためにのみ 2 行で表示されます)。

10 行目は一時的な変更のオープン タグです。要素の<transient-change>可能なコンテンツは、Junos XML プロトコル操作<load-configuration>におけるタグ要素の<configuration>コンテンツと同じです。

11~16行目は、一時的な変化の内容を表しています。カプセル化は に ppp設定されています。

17~19行目は、このテンプレート内のすべての開いているタグを閉じます。

20 行目は、スタイル シートとコミット スクリプトを閉じます。

ISO 対応インターフェイスへの変更の適用

次の XSLT スクリプトのサンプルでは、国際標準化機構 (ISO) プロトコルで有効になっているインターフェイスにも MPLS が有効になっており、 階層レベルに含まれていることを [edit protocols mpls interface] 確認します。この例の SLAX バージョンについては、 例: 制御 IS-IS および MPLS インターフェースを参照してください。

行 1~8 は、 コミット スクリプトに必要な定型文で説明されている定型的 なものであり、簡潔にするためにここでは省略しています。

9行目は、以下for-each[edit protocols mpls]ループで参照できるように、 階層レベルへの参照を保存します。

10行目は、ISOが有効になっている各インターフェイスユニット(論理インターフェイス)を調べます。は 、 でunit終わりますが、述部ではselect、選択を、エレメントの下<family>にネストされたエレメントを<iso>含むユニットのみに制限します。

11行目は、インターフェイス名を変数に構築します。まず、name変数宣言の属性は にifname設定されます。Junos OS では、インターフェイス名はデバイス名、ピリオド、およびユニット番号の連結です。スクリプトのこの時点で、コンテキストノードはユニット番号になります。ライン10はコンテキストをインターフェイス/インターフェイス/ユニットに変更するためです。は../name<name>コンテキストノードの親ノードの要素を指します。これはデバイス名(type-fpc/pic/port)です。XPath式の「name」トークンは、ユニット番号(unit-number)であるコンテキストノードの要素を指<name>します。連結が実行されると、行 11 の XPath 式は -fpc//picport.unit-numbertype解決されます。行10の<xsl:for-each>命令が階層を通過し、ISO対応インターフェイスを検索すると、インターフェイス名は再帰的に変数にifname格納されます。

12 行目は、MPLS を有効にしていない ISO 対応インターフェイスごとに true と評価されます。

13 行目は jcs:emit-changejunos.xsl ファイル内のヘルパーまたは便利なテンプレートであるテンプレートを呼び出します。このテンプレートについては、 出力変更テンプレート(SLAX および XSLT)とemit_change(Python)で説明します

14~18行目では、テンプレートのmessageパラメータをjcs:emit-change使用します。メッセージ パラメーターは、 、 <edit-path>要素<statement>を明示的に含め<warning>るのではなく、使用できるショートカットです。

19~23行目では、テンプレートの content パラメータを jcs:emit-change 使用します。このパラメータは content 、現在のコンテキスト ノードに対する変更を指定します。

24 行目と 25 行目は、それぞれ 13 行目と 12 行目で開かれたタグを閉じます。

26 行目では、MPLS がすでに有効になっているかどうか、このインターフェイスが 階層レベルで [edit protocols mpls interface] 設定されていないかどうかをテストします。

27行目から41行目には、テンプレートの呼び出しが jcs:emit-change 含まれています。この呼び出しでは、インターフェイスが 階層レベルで [edit protocols mpls interface] 追加されます。

42~45 行目は、すべての開いている要素を閉じます。