Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

コミット スクリプトの設計に関する考慮事項

XML で Junos OS 設定データを確認した後は、コミット スクリプトを非常に簡単に作成できます。このセクションでは、 XSLT を使用してコミット スクリプトを開発する場合のアドバイスと一般的なパターンについて説明します。

XSLT は解釈される言語であり、パフォーマンスを重要な考慮事項とします。最良のパフォーマンスを実現するには、各ノードで実行されるノードトラバーサルとテストを最小限に抑えます。可能な場合は、再帰的<xsl:apply-templates>呼び出しで 属性を使用selectして、訪問するドキュメント階層の部分を制限します。

例えば、以下 select の属性は、(IPv4)プロトコルファミリーが有効になっているSONET/SDHインターフェイスを指定することで、評価されるノードを inet 制限します。

以下の例では、 および [edit protocols isis] 階層レベルで設定されたステートメントにスクリプトのスコープを制限する import 2 つの<xsl:apply-templates>命令が[edit protocols ospf]含まれています。

解釈された言語では、何かを複数回実行すると、パフォーマンスに影響を与える可能性があります。ノードまたはノード・セットを繰り返し参照する必要がある場合は、ノード・セットを保持する変数を作成し、その変数を複数参照します。例えば、以下の変数宣言では、 階層レベルに解決する と呼ばれる mpls 変数を [edit protocols mpls] 作成します。これにより、スクリプトは階層を /protocols/ トラバースしてノードを mpls/ 1 回だけ検索できます。

現行コンテキスト・ノードは命令によって選択された各ノードを調べるので、インストラクションを使用<xsl:for-each>する場合にも変数は<xsl:for-each>重要です。例えば、以下のスクリプトでは、複数の変数を使用して値<xsl:for-each>を格納し、参照します。インストラクションは、すべてのチャネル化された STM1(cstm1-)インターフェースで設定された E1 インターフェースを評価します。

cstm1-0/1/0 インターフェイスを 17 個の E1 インターフェイスにチャネル化すると、 コマンドを発行 commit したときに次のエラー メッセージが表示されます。(この例の詳細については、 例: E1 インターフェイス数の制限を参照してください)。