Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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 定義できるステートメントは、ステートメントの直接子として、ステートメントの直接の formatline 、またはステートメント内に field 含めることができます。

メモ:

Junos OS リリース 17.3 以降、カスタム RPC の CLI フォーマットは、拡張ステートメント内で junos-odl:format 定義されています。以前のリリースでは、ステートメントを含むコンテナを使用して CLI フォーマットが junos-odl:cli-format 定義されています。

表 1:Junos OS ODL 拡張モジュールのステートメント

ステートメント

説明

RPC output ステートメント内での配置

blank-line

RPC 応答が複数のエンティティに対して同じ情報セットを返すときに、データの繰り返しごとに空白行を挿入します。

format ステートメント (最上位 )

capitalize

出力フィールド内のノードの値の最初の単語を大文字にします。

format ステートメント(任意のレベル)

cli-format

外側のコンテナが親コンテナの CLI フォーマットを定義していることを示します。書式設定コンテナーは、XML RPC 応答のノードとして含まれません。

このステートメントは、Junos OS リリース 17.3 以降では廃止されています。代わりにステートメントを format 使用します。

フォーマットコンテナ(トップレベル)

colon

ノードのラベルの後にコロンを出力フィールドに挿入します。

このステートメントは、ステートメントによって定義formal-nameされるように、ノードの正式な名前と、出力フィールドのノードの値の前にコロンを挿入する場合にのみ、ステートメントと組み合わせてleading使用されます。

format ステートメント(任意のレベル)

comma

出力フィールドにノードの値の後にコンマを挿入します。

format ステートメント(任意のレベル)

default-text

出力フィールドに対応するノードが欠落している場合に表示するテキストを指定します。

field ステートメント

explicit

レンダラに、ノード名またはその内容とは無関係の値を表示するように指示します。このステートメントは Junos OS RPC でのみ使用され、カスタム RPC には含まれません。

field

出力ツリー内のリーフ ノードを、書式設定された ASCII 出力のフィールドにマッピングします。

line ステートメント

fieldwrap

現在の行が画面よりも広い場合は、フィールドの完全な内容を次の行に折り返します。このステートメントを省略すると、適切な単語区切りや一般的なマージンを考慮せずに出力が折り返されます。

field ステートメント

float

空のフィールドに左に移動するフィールドの値を有効にします。

このステートメントを使用して、隣接フィールドのセットに対して後続の相互排他的な値を示し、一番左のフィールドにのみこれらの使用可能な値の 1 つが含まれるようにします。一番左のフィールドに最初の値が入力されていない場合、ステートメントを含む float 後続のフィールドにマッピングされた値は空のフィールドに移動できます。

field ステートメント

formal-name

そのノードのフィールドに書式指示にステートメントが含まれる leading たびに、出力フィールドでノードの値の前に付くラベルを定義します。

leaf ノード

format

RPC output ステートメント内の親コンテナーの CLI 形式を定義します。

Junos OS リリース 17.3 以降、CLI 形式はステートメントを format 含むコンテナ内ではなく、ステートメント内で cli-format 定義されます。

出力コンテナまたはステートメントのサブステートメント style として使用します。

header

CLI 出力でヘッダー行を定義します。

format ステートメント(最上位)

header-group

ステートメントによって header 定義された最初のヘッダー文字列のみを、そのヘッダー グループの CLI 出力に出力する必要があります。

format ステートメント(最上位)

indent

ヘッダー行以外のすべての行を、CLI 出力内の指定されたスペース数でインデントします。

format ステートメント(最上位)

leading

リーフ ノードの定義でステートメントによって formal-name 定義されるラベルを、出力フィールドのノードの値の前に挿入します。

format ステートメント(任意のレベル)

line

1 行の出力で構成されるフィールドのグループを定義します。

format ステートメント(最上位)

no-line-break

同じタグ名を持つ複数のエンティティが生成された場合、同じ行に複数の値を表示します。

format ステートメント(最上位)

picture

RPC の書式設定された ASCII 出力のテーブル内の列の配置、位置合わせ、幅をグラフィカルに指定します。

format ステートメント(最上位)

space

ノードの値の後にスペースを出力フィールドに挿入します。

ステートメントを space ステートメントと組み合わせて使用する comma 場合、出力はコンマを挿入し、ノードの値の後にスペースをその順序で挿入します。

format ステートメント(任意のレベル)

style

RPC 出力の形式(スタイル)を定義します。

このステートメントは、各スタイルの名前を定義する列挙入力パラメーターと組み合わせて使用します。このステートメントを適切なスタイル名で定義し、そのスタイルの CLI 書式を指定します。

出力コンテナ

template

出力文字列とその文字列内のノードの値の配置を含む、出力フィールドの形式を明示的に定義します。ノードの文字列または整数値の配置を出力文字列内でそれぞれ指定するには、または %d を使用%sします。

リーフ・ステートメントが a template ステートメントと formal-name ステートメントの両方を定義し、対応するフィールドのフォーマット命令にステートメントが leading 含まれる場合、出力にはステートメントに定義 formal-name されたテキストが表示され、ステートメントに定義 template されたテキストは表示されません。

leaf ノード

truncate

ノードの内容がフィールドの幅を超える場合は、ステートメントによって定義された picture フィールド幅に合わせてノードの値を切り捨てます。

field ステートメント

wordwrap

現在の行が画面よりも広い場合は、フィールドの一部を次の行に折り返します。このステートメントは、テーブルの右端の列のフィールドにのみ使用する必要があります。

field ステートメント

YANG RPC の構造の詳細については、「 Junos OS を実行するデバイスの YANG でのカスタム RPC の作成」を参照してください。

リリース履歴テーブル
リリース
説明
17.3R1
Junos OS リリース 17.3 以降では、カスタム RPC の CLI フォーマットは junos-odl:format 拡張ステートメント内で定義されています。以前のリリースでは、CLI フォーマットは junos-odl:cli-format ステートメントを含むコンテナーを使用して定義されています。