RPC 出力をフォーマットするための Junos OS YANG 拡張機能について
Junos OS は、Junos OS を実行するデバイスの操作と設定用の XML をネイティブにサポートしています。Junos OSインフラストラクチャとCLIは、XMLを使用して通信します。CLI で操作コマンドを発行すると、CLI はコマンドを XML に変換して処理します。処理後、Junos OS は出力を XML ドキュメントの形式で返します。この形式では、CLI がテキスト形式に変換して表示します。また、リモート クライアント アプリケーションは、Junos OS を実行するデバイスでの運用および設定要求に XML ベースのデータ エンコーディングを使用します。
Junos OS 出力定義言語(ODL)は、XML タグ付きデータを書式設定された ASCII 出力に変換することを定義します。これは、CLI でコマンドを実行するか、RPC 出力をテキスト形式で要求したときに表示されます。Junos OS ODL 拡張モジュールは ODL の YANG 拡張を定義します。カスタム YANG RPC に含めて、XML RPC 応答をフォーマット済みの ASCII 出力に変換できます。
YANG RPC output
ステートメントは、RPC 操作への出力パラメーターを定義します。RPC output
ステートメント内では、ODL 拡張ステートメントを含め、RPC の出力をカスタマイズできます。 表 1 は、使用可能なステートメントの概要を示し、各ステートメントのフォーマットへの影響について簡単に説明し、RPC output
ステートメント内でステートメントを定義できる場所を示しています。
データを定義するリーフ・ステートメントの下にいくつかの ODL 拡張ステートメントを含め、他のステートメントを出力コンテナー内または CLI フォーマットを定義するステートメント内のさまざまなレベルに組み込 format
みます。ステートメント内 format
にステートメントを配置すると、ステートメントのスコープが決まります。これは、単一のフィールド、1 行内のすべてのフィールド、または出力のすべての行のすべてのフィールドに適用される可能性があります。ステートメント内の任意のレベルで format
定義できるステートメントは、ステートメントの直接子として、ステートメントの直接の format
下 line
、またはステートメント内に field
含めることができます。
Junos OS リリース 17.3 以降、カスタム RPC の CLI フォーマットは、拡張ステートメント内で junos-odl:format
定義されています。以前のリリースでは、ステートメントを含むコンテナを使用して CLI フォーマットが junos-odl:cli-format
定義されています。
ステートメント |
説明 |
RPC |
---|---|---|
|
RPC 応答が複数のエンティティに対して同じ情報セットを返すときに、データの繰り返しごとに空白行を挿入します。 |
|
|
出力フィールド内のノードの値の最初の単語を大文字にします。 |
|
|
外側のコンテナが親コンテナの CLI フォーマットを定義していることを示します。書式設定コンテナーは、XML RPC 応答のノードとして含まれません。 このステートメントは、Junos OS リリース 17.3 以降では廃止されています。代わりにステートメントを |
フォーマットコンテナ(トップレベル) |
|
ノードのラベルの後にコロンを出力フィールドに挿入します。 このステートメントは、ステートメントによって定義 |
|
|
出力フィールドにノードの値の後にコンマを挿入します。 |
|
|
出力フィールドに対応するノードが欠落している場合に表示するテキストを指定します。 |
|
|
レンダラに、ノード名またはその内容とは無関係の値を表示するように指示します。このステートメントは Junos OS RPC でのみ使用され、カスタム RPC には含まれません。 |
– |
|
出力ツリー内のリーフ ノードを、書式設定された ASCII 出力のフィールドにマッピングします。 |
|
|
現在の行が画面よりも広い場合は、フィールドの完全な内容を次の行に折り返します。このステートメントを省略すると、適切な単語区切りや一般的なマージンを考慮せずに出力が折り返されます。 |
|
|
空のフィールドに左に移動するフィールドの値を有効にします。 このステートメントを使用して、隣接フィールドのセットに対して後続の相互排他的な値を示し、一番左のフィールドにのみこれらの使用可能な値の 1 つが含まれるようにします。一番左のフィールドに最初の値が入力されていない場合、ステートメントを含む |
|
|
そのノードのフィールドに書式指示にステートメントが含まれる |
|
|
RPC Junos OS リリース 17.3 以降、CLI 形式はステートメントを |
出力コンテナまたはステートメントのサブステートメント |
|
CLI 出力でヘッダー行を定義します。 |
|
|
ステートメントによって |
|
|
ヘッダー行以外のすべての行を、CLI 出力内の指定されたスペース数でインデントします。 |
|
|
リーフ ノードの定義でステートメントによって |
|
|
1 行の出力で構成されるフィールドのグループを定義します。 |
|
|
同じタグ名を持つ複数のエンティティが生成された場合、同じ行に複数の値を表示します。 |
|
|
RPC の書式設定された ASCII 出力のテーブル内の列の配置、位置合わせ、幅をグラフィカルに指定します。 |
|
|
ノードの値の後にスペースを出力フィールドに挿入します。 ステートメントを |
|
|
RPC 出力の形式(スタイル)を定義します。 このステートメントは、各スタイルの名前を定義する列挙入力パラメーターと組み合わせて使用します。このステートメントを適切なスタイル名で定義し、そのスタイルの CLI 書式を指定します。 |
出力コンテナ |
|
出力文字列とその文字列内のノードの値の配置を含む、出力フィールドの形式を明示的に定義します。ノードの文字列または整数値の配置を出力文字列内でそれぞれ指定するには、または リーフ・ステートメントが a |
|
|
ノードの内容がフィールドの幅を超える場合は、ステートメントによって定義された |
|
|
現在の行が画面よりも広い場合は、フィールドの一部を次の行に折り返します。このステートメントは、テーブルの右端の列のフィールドにのみ使用する必要があります。 |
|
YANG RPC の構造の詳細については、「 Junos OS を実行するデバイスの YANG でのカスタム RPC の作成」を参照してください。