Red Hat Training
A Red Hat training course is available for Red Hat Virtualization
3.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 3.3. 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 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 3.4. 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.