第2章 ソフトウェア開発キットの使用

このセクションでは、バージョン 4 のソフトウェア開発キットの使用方法について説明します。

2.1. パッケージ

次のモジュールは、Python SDK で最も頻繁に使用されます。

ovirtsdk4

これはトップレベルのモジュールです。最も重要な要素は Connection クラスです。これは、サーバーに接続し、サービスツリーのルートへの参照を取得するためのメカニズムです。

Error クラスは、SDK がエラーを報告する必要があるときに発生するベース例外クラスです。

特定の種類のエラーには、ベースエラークラスを拡張する特定のエラークラスがあります。

  • AuthError - 認証または認可が失敗したときに発生します。
  • ConnectionError - サーバーの名前を解決できない場合、またはサーバーに到達できない場合に発生します。
  • NotFoundError - リクエストされたオブジェクトが存在しない場合に発生します。
  • TimeoutError - 操作がタイムアウトしたときに発生します。
ovirtsdk4.types

このモジュールには、API で使用されるタイプを実装するクラスが含まれています。たとえば、ovirtsdk4.types.Vm クラスは、仮想マシンタイプの実装です。これらのクラスはデータコンテナーであり、ロジックは含まれていません。

これらのクラスのインスタンスは、サービスメソッドのパラメーターおよび戻り値として使用されます。基礎となる表現への変換、基礎となる表現からの変換は、SDK によって透過的に処理されます。

ovirtsdk4.services

このモジュールには、API でサポートされているサービスを実装するクラスが含まれています。たとえば、ovirtsdk4.services.VmsService クラスは、システムの仮想マシンのコレクションを管理するサービスの実装です。

これらのクラスのインスタンスは、サービスが見つかると SDK によって自動的に作成されます。たとえば、次の手順を実行すると、VmsService クラスの新しいインスタンスが SDK によって自動的に作成されます。

vms_service = connection.system_service().vms_service()

コンストラクターのパラメーターをはじめ、一般的にはサービスロケーターやサービスメソッド以外のメソッドはすべて今後変更される可能性があるので、これらのクラスのインスタンスを手動で作成しないようにすることが最善です。

他にも、ovirtsdk4.httpovirtsdk4.readersovirtsdk4.writers などのモジュールがあります。これらは、HTTP 通信の実装、および XML の解析とレンダリングに使用されます。これらは将来変更される可能性のある内部実装の詳細であるため、使用しないでください。下位互換性は保証されません。