Client pagination support

Registered by Anita Kuno

Add pagination functionality. There is pagination code in glanceclient and keystoneclient currently. There is a request to have pagination in novaclient: https://bugs.launchpad.net/python-novaclient/+bug/1001345

I would like to use the code currently in glanceclient and keystoneclient as a template for the olso pagination library.

Also, in keystoneclient, the pagination code is there and functional since the tests use it and pass but the flags to access it via the shell are not offered, I do not know why this is.

Since code freeze is coming up, I plan on just addressing the novaclient bug linked above and revisiting this blueprint when work begins on Havana.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
Anita Kuno
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Mark McLoughlin

Related branches

Sprints

Whiteboard

So far here is my rough list of nova commands that might be considered requiring pagination function. Some can be stricken from the list as impractical, I need to review further to narrow down the list:

    absolute-limits Print a list of absolute limits for a user
    agent-list List all builds
    aggregate-details Show details of the specified aggregate.
    aggregate-list Print a list of all aggregates.
    cloudpipe-list Print a list of all cloudpipe instances.
    console-log Get console log output of a server.
    coverage-report Generate a coverage report
    credentials Show user credentials returned from auth
    diagnostics Retrieve server diagnostics.
    dns-domains Print a list of available dns domains.
    dns-list List current DNS entries for domain and ip or domain
                        and name.
    endpoints Discover endpoints that get returned from the
                        authenticate services
    fixed-ip-get Get info on a fixed ip
    flavor-access-list Print access information about the given flavor.
    flavor-list Print a list of available 'flavors' (sizes of
                        servers).
    floating-ip-bulk-list
                        List all floating ips
    floating-ip-list List floating ips for this tenant.
    floating-ip-pool-list
                        List all floating ip pools.
    host-list List all hosts by service
    hypervisor-list List hypervisors.
    hypervisor-servers List instances belonging to specific hypervisors.
    hypervisor-stats Get hypervisor statistics over all compute nodes.
    image-list Print a list of available images to boot from.
    keypair-list Print a list of keypairs for a user
    list List active servers.
    network-list Print a list of available networks.
    quota-class-show List the quotas for a quota class.
    quota-defaults List the default quotas for a tenant.
    quota-show List the quotas for a tenant.
    rate-limits Print a list of rate limits for a user
    secgroup-list List security groups for the current tenant.
    secgroup-list-rules
                        List rules for a security group.
    service-list Show a list of all running services. Filter by host &
                        service name.
    usage-list List usage data for all tenants
    volume-list List all the volumes.
    volume-snapshot-list
                        List all the snapshots.
    volume-type-list Print a list of available 'volume types'.
    baremetal-node-list
                        Print a list of available baremetal nodes.
    list-extensions List all the os-api extensions that are available.
    net-list List networks

####

Suggestions

It would be awesome if backwards pagination is also implemented in this stage. vkmc
Noting my conversation with vkmc about backwards pagination, identifying that we clarified backwards pagination to mean that the sort for the pagination provides the option to begin the returned pages at what would be the last page under the current sort query used in glance. I acknowledge that this would be a helpful option to have and will need to research the status of current db sort queries in the various projects prior to offering an opinion on what is possible. Anita.

It appears their is a cinder commit worth examining: https://github.com/openstack/cinder/commit/f0d5dee0d3aed14d9c49df073a220c19e695461c

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.