Junos XML プロトコルを使用して、設定データに新しい要素を作成する
Junos OS を実行するデバイスとの Junos XML プロトコル セッションでは、新しい構成要素(階層レベルまたは構成オブジェクト)を作成するために、クライアント アプリケーションには、 Junos XML プロトコルを使用した構成要素の作成、修正、削除で説明されている基本的なタグ要素、フォーマットされた ASCII ステートメント、設定モード コマンド、または JSON オブジェクトが含まれています。
Junos XML タグ要素と書式設定された ASCII テキストの場合、新しい要素は、Junos XML プロトコルを使用した設定データ内の要素のマージと Junos XML プロトコルを使用した構成要素の置換で説明されているマージ モードまたは置換モードで作成できます。置換モードでは、アプリケーションにはタグまたは開始<load-configuration>タグに属性が<load-configuration/>含まれますaction="replace"。
Junos XML タグ要素を使用して要素を表すために、アプリケーションには各要素の識別子タグ要素(含まれている場合)と、要素に対して定義されているすべての子タグ要素が含まれています。以下では、識別子タグ要素が と呼ばれます <name>。アプリケーションは、新しい要素の開始コンテナタグに属性を含める必要はありません。
<configuration>
<!-- opening tag for each parent of the element -->
<container-tag>
<name>identifier</name>
<!-- tag elements for other children, if any -->
</container-tag>
<!-- closing tag for each parent of the element -->
</configuration>
書式設定されたASCIIテキストを使用して要素を表すために、アプリケーションには、各要素の識別子(持っている場合)と、要素に対して定義されているすべての子ステートメント(必要に応じて値を含む)が含まれています。新しい要素の前に演算子を含める必要はありません。
<configuration-text>
/* statements for parent levels of the element */
element identifier {
/* child statements if any */
}
/* closing braces for parent levels of the element */
</configuration-text>
設定モードコマンドを使用して新しい要素を作成するには、アプリケーションに タグに action="set" および format="text" 属性が <load-configuration> 含まれています。アプリケーションには、 set CLIで実行されるコマンドが含まれています。コマンドには、 要素へのステートメントパス、要素の識別子(1つがある場合)、要素に定義されているすべての子ステートメント(必要に応じて値を含む)が含まれます。
<configuration-set>
set statement-path-to-element element identifier child-elements
</configuration-set>
Junos OS リリース 16.1 以降、デバイスで JavaScript Object Notation(JSON)を使用してフォーマットされた設定データを読み込むことができます。設定データを JSON 形式で読み込む場合、マージモードでのみ新しい要素を作成できます。JSON 内の要素を表すために、アプリケーションには各要素の識別子(1 つがある場合)と、要素に対して定義されているすべてのデータオブジェクトと子オブジェクトが含まれています。アプリケーションは、新しい要素を作成するために特定の操作属性を含める必要はありません。次の例では、要素の識別子を指定する JSON メンバーのフィールド名は"name"です。
<configuration-json>
{
"configuration" : {
/* JSON objects for parent levels of the element */
"container-tag" : {
"object" : [
{
"name" : "identifier",
/* data and child objects */ # if any
}
],
/* data and child objects */ # if any
}
/* closing braces for parent levels of the element */
}
}
</configuration-json>