3.5. コレクションからのリソースリストの取得

以下の例では、list メソッドを使用して、コレクションからリソースのリストを取得します。

例3.3 コレクション内の全リソースのリストの取得

datacenters コレクションの全リソースのリストを取得します。list メソッドの query パラメーターを指定すると、engine ベースのクエリーを使用できます。この方法では、SDK は、管理およびユーザーポータルで実行されたのと同じ形式のクエリーをサポートします。また、query パラメーターは、コレクションを通じて反復処理を行う間にページネーションの引数を提供するメカニズムでもあります。
dc_list = []
dc_page_index = 1
dc_page_current = api.datacenters.list(query="page %s" % dc_page_index)
while(len(dc_page_current) != 0):
    dc_list = dc_list + dc_page_current
    dc_page_index = dc_page_index + 1
    dc_page_current = api.datacenters.list(query="page %s" % dc_page_index)
上記の例では、datacenters コレクションに含まれるリソースのリストが最終的に、ローカルで定義された dc_list リスト変数に格納されます。

警告

コレクションの list メソッドは、SearchResultsLimit Red Hat Enterprise Virtualization Manager 設定キーで許可された数の要素のみを返すよう制限されています。
list のすべてのレコードが返されるようにするには、この例で示したように、結果をページネーションすることを推奨します。
また、list メソッドの max パラメーターに、取得するレコードの最大数を設定することもできます。

例3.4 キーワードベースフィルタリングに一致するコレクション内のリソースのリストの取得

ストレージタイプが nfsdatacenters コレクション内にある全リソースのリストを取得します。この例では、query パラメーターと **kwargs パラメーターの両方が提供されます。前の例と同様に、ページネーションには query が使用されます。**kwargs パラメーターは、データセンターのストレージタイプに基づいてフィルタリングするために使用されます。
dc_list = []
dc_page_index = 1
dc_page_current = api.datacenters.list(query="page %s" % dc_page_index, **{"storage_type": "nfs"})
while(len(dc_page_current) != 0):
    dc_list = dc_list + dc_page_current
    dc_page_index = dc_page_index + 1
    dc_page_current = api.datacenters.list(query="page %s" % dc_page_index, **{"storage_type": "nfs"})
上記の例では、ストレージタイプが nfsdatacenters コレクションに含まれるリソースのリストが最終的に、ローカルで定義された dc_list リスト変数に格納されます。