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 キーワードベースフィルタリングに一致するコレクション内のリソースのリストの取得
ストレージタイプが
nfs
の datacenters
コレクション内にある全リソースのリストを取得します。この例では、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"})
上記の例では、ストレージタイプが
nfs
の datacenters
コレクションに含まれるリソースのリストが最終的に、ローカルで定義された dc_list
リスト変数に格納されます。