26.5. Retrieving a List of Resources from a Collection
In these examples a list of resources is retrieved from a collection using the
list method.
Example 26.2. Retrieving a List of all Resources in a Collection
Retrieving a list of all resources in the
datacenters collection. The query parameter of the list method allows the use of engine based queries. In this way the SDK supports the use of queries in the same format as those executed in the Administration and User Portals. The query parameter is also the mechanism for providing pagination arguments while iterating through the collection.
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)
In this example the list of resources contained in the
datacenters collection is ultimately stored in the locally defined dc_list list variable.
Warning
The
list method of a collection is restricted to returning only as many elements as allowed by the SearchResultsLimit Red Hat Enterprise Virtualization Manager configuration key.
To ensure that all records in a the
list are returned it is recommended that you paginate through the results as illustrated in this example.
Alternatively you may choose to set the
max parameter of the list method to the maximum number of records that you wish to retrieve.
Example 26.3. Retrieving a List of Resources in a Collection Matching a Keyword Based Filter
Retrieving a list of all resources in the
datacenters collection that have a storage type of nfs. In this example both the query parameter and **kwargs parameter are supplied. The query is used for pagination in the same way as illustrated in the previous example. The **kwargs parameter is used to filter based on the storage type of the data center.
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"})
In this example the list of resources contained in the
datacenters collection with a storage type of nfs is ultimately stored in the locally defined dc_list list variable.