Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos PyEZアプリケーションでインラインまたは外部のテーブルとビューを読み込む

定義済みのテーブル、インラインテーブル、外部カスタムテーブルをJunos PyEZアプリケーションにインポートします。

Junos PyEZのテーブルとビューは、Junosデバイスの設定や、運用コマンドの出力や設定データから特定の情報を抽出するためのシンプルで効率的な方法を提供します。Junos PyEZには、アプリケーションで使用できる定義済みの運用テーブルとビューのセットが用意されています。また、独自のカスタムの運用テーブルや設定テーブルとビューを作成することもできます。

クイックインラインテーブルとビューは、Pythonアプリケーションで直接複数行の文字列として作成できます。または、外部ファイルに 1 つ以上のテーブルとビューの定義を作成し、テーブルを Python アプリケーションにインポートすることもできます。インラインテーブルとビューは使いやすいですが、外部ファイルを使用すると、一元化された再利用可能なライブラリを作成できます。

Junos PyEZの定義済みテーブルとビューをPythonアプリケーションで使用するには、テーブルをアプリケーションにインポートする必要があります。カスタム表とビューを使用するには、表とビューの定義を作成し、定義がモジュールの内部か外部かに応じて、定義をアプリケーションにロードまたはインポートする必要があります。次のセクションでは、モジュールの内部と外部の両方にあるテーブルとビューのこのプロセスの概要を説明します。

Junos PyEZの定義済みテーブルとビューをインポートする

Junos PyEZ jnpr.junos.op モジュールと jnpr.junos.command モジュールは、いくつかの一般的な操作RPCとコマンド用に定義済みのテーブルとビュー定義を提供します。Junos PyEZの定義済みテーブルとビューをPythonアプリケーションで使用するには、アプリケーションに適切なimportステートメントを含める必要があります。Junos PyEZ Device クラスのインポートに加えて、必要なテーブルもインポートする必要があります。

次の例では、定義済みの運用テーブル EthPortTable を jnpr.junos.op.ethport モジュールからインポートします。

テーブル定義とビュー定義をインポートした後、テーブル とビューの使用の説明に従って使用できます。次の例では、テーブルで定義されたRPCのデータを取得し、インターフェイス名と運用ステータスを出力します。

Junos PyEZの定義済みテーブルとビューの詳細については、 定義済みJunos PyEZ操作テーブル(構造化出力)を参照してください。

インラインテーブルとビューの読み込み

Junos PyEZアプリケーションでカスタムのインラインテーブルとビューを作成、ロード、および使用するには:

  1. 次のクラスとライブラリをモジュールにインポートします。
  2. YAMLの1つ以上のテーブルとビューを複数行の文字列として定義します。
  3. 次のステートメントを含めてテーブルとビュー定義を読み込みます。ここで string-name は、テーブル/ビュー定義を含む複数行文字列の識別子です。
  4. デバイスに接続し、テーブルを使用して、テーブルのタイプに応じて、情報の取得、デバイスの設定、またはその両方を行います。たとえば、次の例を示します。

テーブル定義とビュー定義が読み込まれた後、モジュールでインラインテーブルと外部テーブルを使用する方法に違いはありません。詳細については、「 テーブルとビューの使用」を参照してください。

外部テーブルとビューのインポート

外部テーブルとビュー定義は、Junos PyEZアプリケーションの外部にあるファイルに配置されます。外部のカスタムテーブルとビューを作成してJunos PyEZアプリケーションにインポートするには、次の手順に従います。

  1. YAMLで1つ以上のテーブルとビューを定義し、拡張子が .yml のファイルに保存します。
  2. Table ファイルと同じベース名を持ち、拡張 子が .py のファイルを作成し、ファイルに次の 4 行のコードを含めます。

    loadyaml() 関数は YAML ファイルを読み込み、テーブル クラスとビュー クラスを モジュール 名前空間に登録します。

  3. .yml ファイルと .py ファイルがサブディレクトリにある場合は、そのサブディレクトリに __init__.py ファイルを含めて、Python がアプリケーションで Table import ステートメントを処理するときにこのディレクトリをチェックしないようにします。
  4. Junos PyEZアプリケーションで、 Device クラスと必要なテーブルをインポートします。
  5. デバイスに接続し、テーブルを使用して、テーブルのタイプに応じて、情報の取得、デバイスの設定、またはその両方を行います。たとえば、次の例を示します。

テーブル定義とビュー定義が読み込まれた後、モジュールでインラインテーブルと外部テーブルを使用する方法に違いはありません。詳細については、「 テーブルとビューの使用」を参照してください。

テーブルとビューを使用する

テーブル定義とビュー定義をロードまたはインポートした後、事前定義されたテーブル、カスタムインライン、またはカスタム外部テーブルを同じ方法で使用できます。

テーブルを使用するには:

  1. Deviceインスタンスを作成し、ターゲットデバイスへの接続を開きます。
  2. テーブルインスタンスを作成し、それを Device インスタンスに関連付けます。
  3. テーブルを使用して、テーブルのタイプに応じて、情報の取得、デバイスの設定、またはその両方を行います。
  4. 結果のオブジェクトを反復処理して操作し、必要な情報を抽出します。

次の例では、カスタム外部テーブル UserTable をインポートします。アプリケーションはデバイスに接続し、テーブルのget()メソッドを呼び出して、[edit system login]階層レベルからuserオブジェクトを取得します。次に、アプリケーションは各ユーザー名とそれに対応するログインクラスを出力します。

Junos PyEZテーブルの使用方法の詳細については、以下のトピックを参照してください。