A large deployment has a single Keystone endpoint serving multiple regions, each with multiple availability zones.
A user wishes to get a list of regions in a deployment. This is currently not possible.
A user wishes to get a list of availability zones in each region in a deployment. This also is currently not possible.
A user wishes to use novaclient (or any of the openstack clients besides keystone) to operate against availability zone 2 in region A of a deployment. The user would like to be able to specify --os-availability-zone on the command line like they do when specifying --os-region-name on the command line and have novaclient negotiate to the correct availability zone's compute endpoint automatically, in much the same way as is currently done if there is only a single endpoint for compute returned in the service catalog part of the authentication response.
Unfortunately, this, too, is currently not possible. The user must know ahead of time which compute endpoint URI to supply to novaclient for availability zone 2 in region A and pass that URI to novaclient with the --uri CLI option.
Just because this is how Amazon Web Services requires one to target compute or volume operations against different availability zones does not mean this is either user-friendly or good design -- it probably has more to do with the homegrown way that Amazon Web Services grew up than any architectural design the AWS developers made.
The natural place for information about a deployment's regions and availability zones is Keystone. It is NOT Nova, since availability zones and regions affect all services, not just compute.
I'd like to discuss adding support for region and availability zone CRUD to the v3 or v4 API of Keystone.