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

3.1. Python を使用した API への接続

Python を使用して REST API に接続するには、ovirtsdk.api モジュールから API クラスのインスタンスを作成する必要があります。この操作を行うには、最初にスクリプトの先頭でクラスをインポートする必要があります。
from ovirtsdk.api import API
API クラスのコンストラクターは、複数の引数を取ります。サポートされる引数は以下のとおりです。
url
接続する Manager の URL (/api パスを含む) を指定します。このパラメーターは必須です。
username
接続時に使用するユーザー名をユーザープリンシパル名 (UPN) 形式で指定します。このパラメーターは必須です。
password
username パラメーターにより提供されたユーザー名のパスワードを指定します。このパラメーターは必須です。
kerberos
有効な Kerberos チケットを使用して接続を認証します。有効な値は TrueFalse です。このパラメーターはオプションです。
key_file
cert_file で指定された証明書に関連付けられた秘密キーを含む PEM 形式のキーファイルを指定します。このパラメーターは必須です。
cert_file
サーバーでクライアントの ID を確立するために使用する PEM 形式のクライアント証明書を指定します。このパラメーターはオプションです。
ca_file
サーバーの認証局の証明書ファイルを指定します。insecure パラメーターが True に設定されていない限り、このパラメーターは必須です。
port
接続時に使用するポートを指定します (url パラメーターの一部として提供されなかった場合)。このパラメーターはオプションです。
timeout
要求がタイムアウトするまでの時間を秒単位で指定します。このパラメーターはオプションです。
persistent_auth
この接続に対して永続認証を有効にするかどうかを指定します。有効な値は TrueFalse です。このパラメーターはオプションで、デフォルトでは False に設定されています。
insecure
認証局を使用しない SSL 経由の接続を許可します。有効な値は TrueFalse です。insecure パラメーターが False (デフォルト値) に設定されている場合は、ca_file を提供して接続をセキュリティー保護する必要があります。
このオプションにより、サーバーになりすました中間者 (MITM) 攻撃が可能となる場合があるため、細心の注意を払って使用してください。
filter
ユーザーパーミッションベースのフィルターをオンまたはオフにするかどうかを指定します。有効な値は、TrueFalse です。filter パラメーターが False (デフォルト値) に設定された場合は、管理ユーザーの認証情報を提供する必要があります。filter パラメーターが True に設定された場合は、どのユーザーでも使用でき、Manager はユーザーのパーミッションに基づいてユーザーが利用可能なアクションをフィルタリングします。
debug
この接続に対してデバッグモードを有効にするかどうかを指定します。有効な値は TrueFalse です。このパラメーターはオプションです。
ovirtsdkAPI Python クラスの別個のインスタンスを作成して操作することにより、複数の Red Hat Enterprise Virtualization Manager と通信することが可能です。
このサンプルスクリプトは、API クラスのインスタンスを作成し、test() メソッドを使用して接続が動作していることを確認し、disconnect() メソッドを使用して接続解除します。
from ovirtsdk.api import API    
    
api_instance = API ( url="https://rhevm31.demo.redhat.com", 
                     username="admin@internal", 
                     password="Password", 
                     ca_file="/etc/pki/ovirt-engine/ca.pem")

print "Connected successfully!"

api_instance.disconnect()
API クラスによりサポートされるメソッドの完全な一覧については、ovirtsdk.api モジュールの Pydoc の出力を参照してください。
$ pydoc ovirtsdk.api