例:Python テスト ファイルでの Junos スナップショット アドミニストレータの作成
この例では、Python(jsnapy)テストファイルで基本的なJunosスナップショットアドミニストレータを作成する方法を説明しています。このトピックの例では、行に他のテキストを入力する前に、特定の数のスペースを使用する場合があります。これらのスペースは、YAML ファイルを適切にフォーマットするために必要です。
要件
Python リリース 1.0 の Junos Snapshot Administrator がサーバにインストールされている。
概要
このトピックでは、テスト ファイルの作成に使用できるさまざまな要素を使用して 2 つのテスト ファイルを作成する方法について説明します。
Junos OSソフトウェアのリリースバージョンをキャプチャしただけの という名前の
test_sw_version.yml
テストファイルRPC コマンドからフィルター処理された
get_config
情報を要求するという名前のfilter_config_info.yml
テスト ファイル。
Jsnapyテストファイルには、Junos OSデバイスのランタイム環境のスナップショットを作成または比較するために必要な詳細なコマンド、テスト、階層の場所、テスト要素が含まれています。必要な数のテストファイルを作成し、jsnapyサーバー上の好きな場所に保存し、必要に応じて名前を付けることができます(スペースと特殊文字を除く)。jsnapy テスト ファイルには、tests_include 見出しの下の名前付きテストのリストと、tests_include セクションの下の名前付きテストごとに 1 つの詳細セクションである詳細セクションの 2 つの主要な部分があります。
コメントは、ポンド記号 (#) でコメントを開始することで、任意の場所でテスト ファイルに挿入できます。
Junos OSソフトウェアリリースバージョンのキャプチャ
手順
手順
この例では、テキスト エディタを使用して、 という名前の test_sw_version.yml
新しいファイルを作成します。使用する構成ファイルと同じディレクトリ、またはディレクトリ内に /etc/jsnapy/testfiles/
ファイルを作成します。
tests_include セクションを作成します。
tests_include:
テスト名を設定します。
- test_sw_version
テストの詳細セクションを開始します。
test_sw_version:
送信するコマンドを設定します。この場合、それは Junos OSコマンド
show version
。- command: show version
テストで値の最初のインスタンスを検索するか、値のすべてのインスタンスを検索するかを指定します。この場合、最初のインスタンスのみを探しています。
- item:
スナップショットまたは検索を開始する XPATH の場所を指定します。
xpath: '//software-information'
テストセクションがある場合は、それを開始します。この場合、テストセクションがあります。
tests:
実行するテストを指定します。この場合、このテストファイルを有効にして、Junos OSのバージョンがスナップショット間で同じかどうかを確認します。
- all-same: junos-version
表示するエラーメッセージを設定します。テストが失敗した場合でも、このメッセージが表示されます。
err: "Test Failed!!! The versions are not the same. From the PRE snapshot, the version is: <{{pre['junos-version']}}>. From the POST snapshot, the version is <{{post['junos-version']}}>!! "
表示する情報メッセージを設定します。テストが成功した場合は、このメッセージが表示されます。
info: "Test Succeeded!! The Junos OS version is: <{{post['junos-version']}}>!!!"
結果
結果のテストファイルは、 コマンドを使用してターミナル cat
に表示できます。
user@jsnapy-server:~> cat test_sw_version.yml tests_include: - test_sw_version test_sw_version: - command: show version - item: xpath: '//software-information' tests: - all-same: junos-version err: "Test Failed!!! The versions are not the same. From the PRE snapshot, the version is: <{{pre['junos-version']}}>. From the POST snapshot, the version is <{{post['junos-version']}}>!! " info: "Test Succeeded!! The Junos OS version is: <{{post['junos-version']}}>!!!"
フィルタリングされた構成情報の要求
手順
手順
この例では、RPC コマンド を使用するテスト ファイルを作成して、 get-config
デバイス構成を取得します。RPC コマンドに引数を指定すると、jsnapy はそのデバイス設定情報をフィルタリングして、スナップショットにコンフィギュレーション全体ではなくフィルタリングされた情報のみが含まれるようになります。この例では、情報のみ host-name
を返すようにテストファイルを構成します。
tests_include セクションを作成します。
tests_include:
テスト名を設定します。
- test_rpc_filtering
テストの詳細セクションを開始します。
test_rpc_filterin:
使用する RPC コマンドを設定します。
- rpc: get-config
引数キーワードを指定して、引数が続くことをjsnapyに伝えます。
- kwargs:
引数の名前と値を入力します。この場合、ホスト名をフィルタリングしています。
filter_xml: configuration/system/host-name
結果
結果の設定は、 コマンドを使用してターミナル cat
で表示できます。
user@jsnapy-server:~> cat filter_config_info.yml tests_include: - test_rpc_filtering test_rpc_filtering: - rpc: get-config - kwargs: filter_xml: configuration/system/host-name