Junos OSを実行するデバイスでYANG RPC出力をカスタマイズする
Junos OS を実行するデバイス用に YANG でカスタム RPC を作成できます。これにより、Junos OS を実行するデバイス上の特定の運用タスクに対して、入力パラメーターと操作、出力フィールドと書式を正確に定義できます。
Junos OS を実行しているデバイスで RPC を実行すると、RPC の返信が XML ドキュメントとして返されます。Junos OS出力定義言語(ODL)は、CLIでコマンドを実行するか、テキスト形式でRPC出力を要求した場合に表示されるフォーマット済みASCII出力へのXMLデータの変換を定義します。Junos OS ODL 拡張モジュールは、Junos OS ODL の YANG 拡張を定義します。この拡張機能は、カスタム RPC に含めて、出力の CLI フォーマットを指定できます。RPCステートメント内のすべてのステートメントとその配置の概要については、 RPC output
出力をフォーマットするためのJunos OS YANG拡張についてを参照してください。
Junos OS リリース 17.3 以降、カスタム RPC の CLI フォーマットは extension ステートメント内で junos-odl:format
定義されます。以前のリリースでは、 ステートメントを含むコンテナを使用してCLIフォーマットが junos-odl:cli-format
定義されています。
以下のセクションでは、Junos OS ODL 拡張ステートメントの使用方法について概要を説明します。密接に関連するステートメントが同じセクションに表示され、場合によっては複数のセクションにステートメントが含まれることがあります。この例では、同封の YANG モジュールが Junos OS ODL 拡張モジュールをインポートし、プレフィックスに junos-odl
バインドすることを想定しています。この例では、Junos OS リリース 17.3 で導入された ステートメントを使用 format
して、CLI のフォーマットを定義しています。
空白行
RPC 応答が複数のエンティティに対して同じ情報セットを返す場合、ステートメントは blank-line
データの各繰り返しの間に 1 行を挿入します。例えば、RPC 応答が複数のインターフェースのデータを返す場合、フォーマットされた ASCII 出力は各インターフェースのデータ・セットの間にブランク行を挿入します。
Physical interface: so-1/1/0, Enabled, Physical link is Down Interface index: 11, SNMP ifIndex: 41 ... Active defects : LOL, LOF, LOS, SEF, AIS-L, AIS-P Physical interface: so-1/1/1, Enabled, Physical link is Down Interface index: 12, SNMP ifIndex: 42 ... Active defects : LOL, LOF, LOS, SEF, AIS-L, AIS-P
各エンティティのデータセットの間に空白行を挿入するには、 ステートメントの下に blank-line
直接ステートメントを format
含めます。
rpc get-xyz-information { output { container xyz-information { // leaf definitions junos-odl:format xyz-information-format { junos-odl:blank-line; // CLI formatting } } } }
大文字
ステートメントはcapitalize
、出力フィールド内のノードの値の最初の単語を大文字にします。ノードの正式名称の大文字化には影響しません。例えば、RPC 出力に 値online
capitalize
をstate
持つノードが含まれている場合、 ステートメントは出力で値を大文字に変換します。
State: Online
ノードの値の最初の単語を大文字にするには、 ステートメント内に ステートメントをcapitalize
format
含めます。ステートメントの配置は、ステートメントのスコープ、およびステートメントが単一フィールド、1行のすべてのフィールド、またはすべての行に影響を与えるかどうかを決定します。
rpc get-xyz-information { output { container xyz-information { leaf state { junos-odl:formal-name "State"; type string; description "Interface state"; } junos-odl:format xyz-information-format { junos-odl:header "xyz information\n"; junos-odl:line { junos-odl:field "state" { junos-odl:leading; junos-odl:colon; junos-odl:capitalize; } } } } } }
cli-format
Junos OS を実行しているデバイスで RPC を実行すると、RPC の返信が XML ドキュメントとして返されます。RPC ステートメントの下のコンテナー ノードとリーフ ノードは、RPC output
応答で XML 要素に変換されます。Junos OS を実行するデバイスの YANG RPC では、Junos OS CLI(コマンドライン インターフェイス)で RPC を実行したり、RPC 出力をテキスト形式で要求したりするときに表示されるカスタム形式の ASCII 出力を定義することもできます。
Junos OSリリース17.2以前のリリースでは、特定のRPC出力コンテナに対してカスタムコマンド出力を作成するには、 ステートメントを含む子コンテナを cli-format
作成します。ステートメントは cli-format
、外側のコンテナが親コンテナのCLIフォーマットを定義しており、このコンテナをRPC応答のXMLデータのノードとして含めないことを示しています。フォーマット・コンテナー内で、親コンテナーのデータを出力フィールドにマップし、Junos OS ODL 拡張モジュールのステートメントを使用して、その親コンテナーの出力を表示する方法を指定します。
rpc get-xyz-information { output { container xyz-information { // leaf definitions container xyz-information-format { junos-odl:cli-format; // CLI formatting for the parent container } } } }
Junos OS リリース 17.3 以降のリリースで、特定の RPC 出力コンテナ用のカスタム コマンド出力を作成するには、 形式を参照してください。
コロン、正式名、そして業界をリードする
ノードの正式名(ラベル)は、ノードの出力フィールドの書式設定手順に ステートメントが含まれている場合 leading
、出力内のノードのコンテンツの前にあるテキストです。ノードのラベルを作成するには、リーフノードの定義に ステートメントを含める formal-name
必要があります。次の例では、 version
ノードの正式な名前 Version
は次のとおりです。
rpc get-xyz-information { output { container xyz-information { leaf version { junos-odl:formal-name "Version"; type string; description "Version"; } ... } } }
ステートメントはcolon
、出力フィールドのノードのラベルの後にコロンを挿入します。フォーマット命令に および leading
ステートメントの両方がcolon
含まれている場合、ノードのラベルとコロンは、出力でノードの値の前に挿入されます。例えば:
Version: value
出力フィールドにラベルとコロンを挿入するには、 ステートメント内に leading
および colon
ステートメントを format
含めます。ステートメントの配置によって、範囲と、ステートメントが単一のフィールド、1 行のすべてのフィールド、またはすべての行に影響を与えるかどうかが決まります。
rpc get-xyz-information { output { container xyz-information { leaf version { junos-odl:formal-name "Version"; type string; description "Version"; } junos-odl:format xyz-information-format { junos-odl:line { junos-odl:field "version" { junos-odl:colon; junos-odl:leading; } } } } } }
RPC を実行すると、そのフィールドの出力にラベルとコロンが含まれます。
Version: value
コンマ
ステートメントは comma
、出力でノードの値にコンマを追加します。出力行にコンマ区切りのフィールドを作成するには、 ステートメントと space
組み合わせて使用します。例えば:
value1, Label2: value2, value3
出力フィールドにノードの値の後にコンマとスペースを生成するには、 ステートメント内に comma
および space
ステートメントを format
含めます。ステートメント内の ステートメントの format
配置によって、スコープが決定されます。1 つのフィールド内に ステートメントを配置すると、そのフィールドに対してのみコンマとスペースが生成されます。ステートメントの下にステートメントを format
直接配置すると、すべてのフィールドに書式設定が適用されます。
rpc get-xyz-information { output { container xyz-information { leaf version { type string; description "Version"; } // additional leaf definitions junos-odl:format xyz-information-format { junos-odl:comma; junos-odl:space; junos-odl:line { junos-odl:field "version"; // additional fields } } } } }
この例の comma
書式設定手順で ステートメントを省略した場合、フィールドはスペースのみで区切られます。Junos OS は、出力行の最後のフィールドの後に、コンマとスペースを自動的に省略します。
デフォルトテキスト
ステートメントは default-text
、出力フィールドに対応するノードが欠落している場合に表示するテキストを指定します。
フィールドにマッピングされたノードが見つからない場合に、フォーマットされたASCII出力に表示する文字列を定義するには、そのノードの default-text
ステートメント内に ステートメントと文字列を field
含めます。
rpc get-xyz-information { output { container xyz-information { leaf my-model { type string; description "Model"; } junos-odl:format xyz-information-format { junos-odl:line { junos-odl:field "my-model" { junos-odl:default-text "Model number not available."; } } } } } }
RPC 応答でノードが見つからない場合、CLI 出力にはデフォルトのテキストが表示されます。
Model number not available.
デバイスは、ノードが欠落している場合にのみデフォルトテキストを表示します。存在するが空のノードのテキストは表示されません。
明示的
ステートメントは explicit
、Junos OS RPC でのみ使用され、カスタム RPC に含めることはできません。
フィールドとライン
および field
ステートメントはline
、RPC のフォーマットされた ASCII 出力と、その行内のフィールドに行を定義します。これらのステートメントは、 ステートメントと一緒picture
に使用して、厳密な列幅とテキスト位置揃えを定義する、より構造化されたテーブルを作成することもできます。
フォーマットされたASCII出力で行を定義するには、 ステートメント内に line
ステートメントを format
含めます。ステートメント内には line
、出力ツリーのリーフノードを行内のフィールドにマッピングするステートメントを含 field
めます。 field
ステートメントの引数はリーフ識別子です。フィールドは、リーフステートメントを定義したのと同じ順序で出力する必要があります。
以下の RPC の CLI 出力は、3 つの値を持つ 1 行です。および line
ステートメント内に他の ODL ステートメントをfield
含めることができるので、1 つのフィールドまたはその行内のすべてのフィールドの書式をそれぞれカスタマイズできます。
rpc get-xyz-information { output { container xyz-information { leaf my-version { type string; description "Version"; } leaf my-model { type string; description "Model"; } leaf comment { type string; description "Comment"; } junos-odl:format xyz-information-format { junos-odl:comma; junos-odl:space; junos-odl:line { junos-odl:field "my-version" { junos-odl:capitalize; } junos-odl:field "my-model"; junos-odl:field "comment"; } } } } }
フィールドラッピングとワードラップ
fieldwrap
および wordwrap
ステートメントを使用すると、行の幅が表示の幅よりも大きい場合に、論理的にコンテンツをラップできます。デフォルトでは、表示のエッジを越えて広がるコンテンツは、単語の境界を気にすることなく、適切なマージンを満たす地点で覆われます。
ステートメントは fieldwrap
、現在の行がディスプレイの右端まで伸びているほど長い場合、フィールドの完全な内容を次の行にラップします。このステートメントを使用しない場合、文字列は適切な改行や一般的なマージンを考慮せずに自動的にラップされます。
以下の出力行を検討してください。
Output errors: Carrier transitions: 1, Errors: 0, Collisions: 0, Drops: 0, Aged packets: 0
ディスプレイが通常よりも狭い場合、次のサンプル出力に示すように、行は単語の中央で折り返される可能性があります。
Output errors: Carrier transitions: 1, Errors: 0, Collisions: 0, Dro ps: 0, Aged packets: 0
フィールドに fieldwrap
ステートメントが含まれている場合、フィールド全体が次の行に移動します。
Output errors: Carrier transitions: 1, Errors: 0, Collisions: 0, Drops: 0, Aged packets: 0
ステートメントは wordwrap
、現在の行が長すぎると、後続の行にマルチワード値のセクションをラップするテーブルの一番右の列でのみ使用されます。これにより、テキストの列が効果的に作成されます。次の例では、 ステートメントは wordwrap
、説明文字列を単語の境界で分割します。
Packet type Total Last 5 seconds Description Sent Received Sent Received Hello 0 0 4 5 Establish and maintain neighbor relationships. DbD 20 25 0 0 (Database description packets) Describe the contents of the topological database. LSReq 6 5 0 0 (Link-State Request packets) Request a precise instance of the database.
RPC のフォーマット済み ASCII 出力でのラッピング動作を改善するには、各フィールドのフォーマット手順に ステートメントを含 fieldwrap
めます。一番右の列をテーブルで囲むには、一番右のフィールドの書式設定のインストラクションに ステートメントを含 wordwrap
めます。
rpc get-xyz-information { output { container xyz-information { leaf version { type string; description "Version"; } leaf desc { type string; description "Description"; } junos-odl:format xyz-information-format { junos-odl:picture "@<<<<<<<<<<<<<<@<<<<<<<<<<<<<<"; junos-odl:line { junos-odl:field "version" { junos-odl:fieldwrap; } junos-odl:field "desc" { junos-odl:wordwrap; } } } } } }
フロート、ヘッダー、画像、切り捨て
RPC のフォーマットされた ASCII 出力で、ステートメント、ステートメント、および 1 つ以上line
のステートメントをheader
定義することで、テーブルをpicture
作成できます。オプションheader
のステートメントは、テーブルの列見出しを定義しますが、一般的なテキストを定義することもできます。ステートメントはpicture
、テーブル内の列の配置、位置揃え、幅をグラフィカルに示しています。および field
ステートメントはline
、テーブル行とそのフィールドを定義します。
ステートメントの picture
引数は、 (@)、(<)未満、(>)より大きい、テーブル列の配置、位置揃え、幅を定義する垂直バー(|)記号を含む文字列です。@ シンボルは、フィールド内の値が使用できる列の左端の位置を定義します。<、>、および |記号はそれぞれ左、右、中央揃えを示しています。<、>、または を繰り返す |シンボルは列の幅を定義します。 表 1 は、シンボルをまとめたものです。列間に 1 つ以上のブランク・スペースを挿入することもできます。
シンボル |
説明 |
---|---|
@ |
フィールド内の値が使用できる列の左端の位置を定義します。 |
| |
フィールドの内容を中心にします。繰り返しシンボルで列の幅を定義します。 |
< |
左はフィールドの内容を正当化します。繰り返しシンボルで列の幅を定義します。 |
> |
フィールドの内容を正当化します。繰り返しシンボルで列の幅を定義します。 |
以下 picture
のステートメントでは、左側揃えの列、中央揃えの列、および幅が 6 文字ずつ 1 つのスペースで区切られた右揃えの列を定義します。
junos-odl:picture " @<<<<< @||||| @>>>>>";
テーブル行を定義するには、 ステートメントを line
含め、リーフノードを行内のフィールドにマッピングします。 field
ステートメントの引数はリーフ識別子です。
junos-odl:line { junos-odl:field "slot"; junos-odl:field "state"; junos-odl:field "comment"; }
テーブルフィールドに相互に排他的な値のいずれかを含める必要がある場合は、それぞれの潜在的な値に対してpicture
ステートメントで@ 記号を繰り返し、最初の値の後に、相互に排他的な値ごとに ステートメント内field
に ステートメントを含float
めることができます。最初の要素に値がない場合、 ステートメントで後続でfloat
可能な要素は、値が返されるまでテストされます。この値は、空白フィールドを残すのではなく、最初の @ シンボルで定義された位置に浮動します。
例えば、以下 picture
のステートメントにより、出力は 2 番目の列に相互に排他的な 2 つの値のいずれか 1 つを含めます。
junos-odl:picture " @<<<<< @@<<<<<"; junos-odl:line { junos-odl:field "slot"; junos-odl:field "state"; junos-odl:field "comment"{ junos-odl:float; } }
また、特定の float
テーブル・フィールドに対応するタグが特定の状況で欠落している可能性があり、余分なブランク・スペースを除去したい場合にも、 ステートメントを使用することができます。
ステートメントは truncate
、フィールドの値が ステートメントで picture
定義された列の幅を超えないことを保証します。ステートメントでは truncate
、フィールドの幅を超えるノードの値内の文字を省略する出力を発生させます。ステートメントが truncate
省略され、出力がフィールドの幅を超えると、完全な内容が表示され、テーブルがゆがむ可能性があります。このステートメントは、特に数字に注意して使用する必要があります。これは、出力で値が切り捨てられているという兆候がないためです。
以下の RPC の CLI フォーマットでは、2 つの列を持つ小さなテーブルが定義されています。フィールドにはcomment
、 および truncate
ステートメントがfloat
含まれます。出力要素にstate
値が含まれている場合、値は2列目に配置されます。ただし、出力要素が空の場合state
、ノードのcomment
値(存在する場合)がテーブルに含まれ、2 番目の列に移動します。コメントがその列の幅を超える場合は、列の幅に合わせて切り捨てられます。
rpc get-xyz-information { output { container xyz-information { leaf slot { type string; description "Slot number"; } leaf state { type string; description "State"; } leaf comment { type string; } junos-odl:format xyz-information-format { junos-odl:header "Slot State \n"; junos-odl:picture "@<<<<< @@|||||||||||||||||||"; junos-odl:line { junos-odl:field "slot"; junos-odl:field "state"; junos-odl:field "comment"{ junos-odl:float; junos-odl:truncate; } } } } } }
形式
Junos OS を実行しているデバイスで RPC を実行すると、RPC の返信が XML ドキュメントとして返されます。RPC ステートメントの下のコンテナー ノードとリーフ ノードは、RPC output
応答で XML 要素に変換されます。Junos OS を実行するデバイスの YANG RPC では、Junos OS CLI(コマンドライン インターフェイス)で RPC を実行したり、RPC 出力をテキスト形式で要求したりするときに表示されるカスタム形式の ASCII 出力を定義することもできます。
Junos OSリリース17.3以降、特定のRPC出力コンテナに対してカスタムコマンド出力を作成するには、 ステートメントを format
定義します。ステートメントは format
親コンテナのCLIフォーマットを定義し、RPC応答のXMLデータのノードとして含まれていません。ステートメント内で format
、親コンテナのデータを出力フィールドにマッピングし、Junos OS ODL拡張モジュールのステートメントを使用して、親コンテナの出力を表示する方法を指定します。
rpc get-xyz-information { output { container xyz-information { // leaf definitions junos-odl:format xyz-information-format { // CLI formatting for the parent container } } } }
Junos OS リリース 17.2 以前のリリースで、特定の RPC 出力コンテナ用のカスタム コマンド出力を作成するには、 cli-format を参照してください。
ヘッダーとヘッダーグループ
header
ステートメントを使用すると、RPC の書式設定された ASCII 出力のフィールドのセットの前にあるヘッダー文字列を定義できheader-group
、同じヘッダー グループ内の 2 つ以上のヘッダーが出力に含まれる場合、ステートメントは最初のヘッダー文字列のみを出力します。
ヘッダー文字列を定義し、ヘッダー グループに関連付けるには、 ステートメント内に それぞれ および header-group
ステートメントをformat
含header
めます。引数はheader-group
、特定のヘッダー グループを識別するユーザー定義文字列です。同じ識別子を持つ ステートメントをheader-group
含むすべてのformat
ステートメントは、同じヘッダー グループに属します。次の例では、ヘッダー グループcolor-tags
にformat
関連付けられたステートメントを定義します。
junos-odl:format red-format { junos-odl:header-group "color-tags"; junos-odl:header "Color tags\n"; ... }
複数の format
ステートメントが同じヘッダーグループに関連付けられ、これらの2つ以上のステートメントから出力されたタグが出力に存在する場合、CLI出力は検出した最初のヘッダーのみを出力し、そのヘッダーグループに属する後続のヘッダーを抑制します。
RPC の CLI 出力でヘッダー グループの最初のヘッダー文字列のみを出力するには、そのヘッダー グループに header-group
属するすべての format
ステートメントと識別子を含めます。次のサンプル RPC output
ステートメントは、2 つのコンテナとそのフォーマット ステートメントをヘッダー グループに関連付けます color-tags
。
output { container red-group { container red { leaf redtag1 { type string; } leaf redtag2 { type string; } junos-odl:format red-format { junos-odl:header-group "color-tags"; junos-odl:header "Color tags\n"; junos-odl:picture "@<<<<<<<<<<<< @<<<<<<<<<<<<"; junos-odl:indent 5; junos-odl:line { junos-odl:field "redtag1"; junos-odl:field "redtag2"; } } } } container blue-group { container blue { leaf bluetag1 { type string; } leaf bluetag2 { type string; } junos-odl:format blue-format { junos-odl:header-group "color-tags"; junos-odl:header "Color tags\n"; junos-odl:picture "@<<<<<<<<<<<< @<<<<<<<<<<<<"; junos-odl:indent 5; junos-odl:line { junos-odl:field "bluetag1"; junos-odl:field "bluetag2"; } } } } }
次の XML タグを持つ RPC の返信を検討してください。
<rpc-reply> <red-group> <red> <redtag1>red-1</redtag1> <redtag2>red-2</redtag2> </red> </red-group> <blue-group> <blue> <bluetag1>blue-1</bluetag1> <bluetag2>blue-2</bluetag2> </blue> </blue-group> </rpc-reply>
RPC応答がCLIでレンダリングされ、各format
ステートメントに同じheader-group
ステートメントが存在する場合、出力には最初のヘッダー文字列のみが出力されます。この場合、識別子を持つred-format
ステートメントでformat
定義されたヘッダー文字列になります。
Color tags red-1 red-2 blue-1 blue-2
ステートメントから ステートメントをheader-group
format
省略した場合、フィールドの各セットに定義されたヘッダー文字列が出力に含まれます。
Color tags red-1 red-2 Color tags blue-1 blue-2
インデント
ステートメントにより indent
、ヘッダー行以外のステートメントのスコープ内のすべての行が、指定された文字数でインデントされます。
行をインデントするには、 ステートメントを含 indent
め、ステートメントの最上位レベルで行をインデントするスペースの数次の format
RPC の書式設定された ASCII 出力には、出力に 10 個のスペースがインデントされた行が表示されます。
rpc get-xyz-information { output { container xyz-information { leaf version { type string; description "Version"; } leaf model { type string; description "Model"; } junos-odl:format xyz-information-format { junos-odl:header "xyz information\n"; junos-odl:indent 10; junos-odl:line { junos-odl:field "version"; junos-odl:field "model"; } } } } }
RPC を実行すると、ヘッダーは正当化されたままで、2 つのフィールドを含む行にはスペースが 10 個インデントされます。
xyz information version model
改行なし
ステートメントは no-line-break
、出力が同じタグ名を持つ複数のエンティティを出力する場合、同じ行に複数の値を表示するために使用されます。ステートメントを no-line-break
含めると、繰り返しのフォーマットは同じ行に置かれます。ステートメントを省略した場合、繰り返しのフォーマットは別の行に置かれます。
例えば、すべてのSONETエラーを同じ行に一緒に表示することができます。
SONET errors: BPI-B1 0 BIP-B2 0 REI-L 0 BIP-B3 0 REI-P 0
同じ出力行内に複数のエンティティのタグを配置するには、そのコンテナの ステートメントに ステートメントをformat
含no-line-break
めます。
rpc get-sonet-errors { output { container sonet-error-information { container sonet-errors { leaf sonet-error-name { type string; description "SONET error name"; } leaf sonet-error-count { type integer; description "SONET error count"; } junos-odl:format sonet-errors-format { junos-odl:no-line-break; junos-odl:space; junos-odl:header "SONET errors:\n"; junos-odl:line { junos-odl:field "sonet-error-name"; junos-odl:field "sonet-error-count"; } } } } } }
RPC 出力が複数のエンティティを返す場合、出力は繰り返されるフィールドの各セットを同じ行に配置します。
SONET errors: BPI-B1 0 BIP-B2 0 REI-L 0 BIP-B3 0 REI-P 0
ステートメントを省略した no-line-break
場合、出力は繰り返されるフィールドの各セットをそれ自身の行に配置します。
SONET errors: BPI-B1 0 BIP-B2 0 REI-L 0 BIP-B3 0 REI-P 0
スペース
ステートメントは space
、RPC のフォーマットされた ASCII 出力でノードの値にスペースを追加します。例えば:
value1 value2 Label3: value3
ステートメントは space
、しばしば、 ステートメントと comma
組み合わせて使用され、コンマの後にスペースが続く出力行のフィールドを区切ります。
出力フィールドの値の後にスペースを生成するには、 ステートメント内に space
ステートメントを format
含めます。ステートメントの配置は、ステートメントのスコープを決定します。ステートメントを単一フィールド内に配置すると、そのフィールドの後にのみスペースが生成されます。
rpc get-xyz-information { output { container xyz-information { leaf version { type string; description "Version"; } // additional leaf definitions junos-odl:format xyz-information-format { junos-odl:space; junos-odl:line { junos-odl:field "version"; // additional fields } } } } }
スタイル
ステートメントは style
、RPC 出力用の複数のフォーマットの 1 つを定義します。ステートメントを style
使用してさまざまな出力レベルを作成する方法の詳細については、 Junosデバイス向けカスタムYANG RPCで異なる出力レベルを定義するを参照してください。
テンプレート
ステートメントは template
、特定のノードの出力フィールドの形式を明示的に定義します。これには、出力文字列と、そのノードの文字列内の値の配置が含まれます。ステートメントが template
リーフノードに対して定義されている場合、対応する出力フィールドはテンプレート文字列を自動的に使用します。
ノードのテンプレート文字列を作成するには、ノードの定義に ステートメントをtemplate
含め、文字列を定義する必要があります。プレースホルダと%s
%d
文字列内で、ノードの値の型と配置を定義します。文字列値を挿入し%d
、整数値を挿入する場合に使用%s
します。例えば:
rpc get-xyz-information { output { container xyz-information { leaf version { junos-odl:template " Version: %s"; type string; description "Version"; } } } }
ノードにステートメントを template
定義すると、そのノードの出力フィールドにはテンプレートテキストが自動的に使用されます。
rpc get-xyz-information { output { container xyz-information { leaf version { junos-odl:template " Version: %s"; type string; description "Version"; } junos-odl:format xyz-information-format { junos-odl:line { junos-odl:field "version"; // additional fields } } } } }
RPC を実行すると、そのフィールドの出力にテンプレートが使用されます。
Version: value
リーフステートメントで と formal-name
ステートメントの両方template
を定義しleading
、そのステートメントがそのフィールドの書式設定手順に含まれている場合、出力は ステートメントに定義されたテキストをformal-name
使用し、 ステートメントに定義されたtemplate
テキストは使用しません。
junos-odl:format
定義されます。以前のリリースでは、 ステートメントを含むコンテナを使用してCLIフォーマットが
junos-odl:cli-format
定義されています。