calling `openstack extension list` for v3 identity doesn't work
steve:~$ openstack extension list --identity --debug
DEBUG: cliff.commandmanager found command 'security_group_create'
DEBUG: cliff.commandmanager found command 'security_group_rule_list'
DEBUG: cliff.commandmanager found command 'keypair_list'
DEBUG: cliff.commandmanager found command 'keypair_delete'
DEBUG: cliff.commandmanager found command 'host_list'
DEBUG: cliff.commandmanager found command 'keypair_create'
DEBUG: cliff.commandmanager found command 'server_pause'
DEBUG: cliff.commandmanager found command 'server_reboot'
DEBUG: cliff.commandmanager found command 'server_migrate'
DEBUG: cliff.commandmanager found command 'server_set'
DEBUG: cliff.commandmanager found command 'host_show'
DEBUG: cliff.commandmanager found command 'server_unrescue'
DEBUG: cliff.commandmanager found command 'server_add_volume'
DEBUG: cliff.commandmanager found command 'server_unlock'
DEBUG: cliff.commandmanager found command 'security_group_set'
DEBUG: cliff.commandmanager found command 'compute_agent_create'
DEBUG: cliff.commandmanager found command 'server_rescue'
DEBUG: cliff.commandmanager found command 'server_add_security_group'
DEBUG: cliff.commandmanager found command 'console_log_show'
DEBUG: cliff.commandmanager found command 'compute_agent_delete'
DEBUG: cliff.commandmanager found command 'server_ssh'
DEBUG: cliff.commandmanager found command 'server_lock'
DEBUG: cliff.commandmanager found command 'server_unset'
DEBUG: cliff.commandmanager found command 'server_show'
DEBUG: cliff.commandmanager found command 'server_suspend'
DEBUG: cliff.commandmanager found command 'keypair_show'
DEBUG: cliff.commandmanager found command 'server_image_create'
DEBUG: cliff.commandmanager found command 'flavor_list'
DEBUG: cliff.commandmanager found command 'server_remove_volume'
DEBUG: cliff.commandmanager found command 'security_group_delete'
DEBUG: cliff.commandmanager found command 'aggregate_add_host'
DEBUG: cliff.commandmanager found command 'aggregate_remove_host'
DEBUG: cliff.commandmanager found command 'server_remove_security_group'
DEBUG: cliff.commandmanager found command 'ip_floating_remove'
DEBUG: cliff.commandmanager found command 'aggregate_create'
DEBUG: cliff.commandmanager found command 'hypervisor_show'
DEBUG: cliff.commandmanager found command 'ip_floating_list'
DEBUG: cliff.commandmanager found command 'aggregate_delete'
DEBUG: cliff.commandmanager found command 'security_group_rule_create'
DEBUG: cliff.commandmanager found command 'compute_agent_set'
DEBUG: cliff.commandmanager found command 'server_rebuild'
DEBUG: cliff.commandmanager found command 'flavor_delete'
DEBUG: cliff.commandmanager found command 'server_delete'
DEBUG: cliff.commandmanager found command 'server_resume'
DEBUG: cliff.commandmanager found command 'hypervisor_list'
DEBUG: cliff.commandmanager found command 'flavor_create'
DEBUG: cliff.commandmanager found command 'console_url_show'
DEBUG: cliff.commandmanager found command 'ip_fixed_add'
DEBUG: cliff.commandmanager found command 'server_create'
DEBUG: cliff.commandmanager found command 'aggregate_show'
DEBUG: cliff.commandmanager found command 'compute_agent_list'
DEBUG: cliff.commandmanager found command 'flavor_show'
DEBUG: cliff.commandmanager found command 'ip_fixed_remove'
DEBUG: cliff.commandmanager found command 'ip_floating_create'
DEBUG: cliff.commandmanager found command 'server_list'
DEBUG: cliff.commandmanager found command 'ip_floating_pool_list'
DEBUG: cliff.commandmanager found command 'ip_floating_add'
DEBUG: cliff.commandmanager found command 'security_group_show'
DEBUG: cliff.commandmanager found command 'server_resize'
DEBUG: cliff.commandmanager found command 'ip_floating_delete'
DEBUG: cliff.commandmanager found command 'compute_service_set'
DEBUG: cliff.commandmanager found command 'security_group_list'
DEBUG: cliff.commandmanager found command 'project_usage_list'
DEBUG: cliff.commandmanager found command 'aggregate_set'
DEBUG: cliff.commandmanager found command 'aggregate_list'
DEBUG: cliff.commandmanager found command 'server_unpause'
DEBUG: cliff.commandmanager found command 'compute_service_list'
DEBUG: cliff.commandmanager found command 'security_group_rule_delete'
DEBUG: openstackclient.shell compute API version 2, cmd group openstack.compute.v2
DEBUG: cliff.commandmanager found command 'network_set'
DEBUG: cliff.commandmanager found command 'network_show'
DEBUG: cliff.commandmanager found command 'network_list'
DEBUG: cliff.commandmanager found command 'network_delete'
DEBUG: cliff.commandmanager found command 'network_create'
DEBUG: openstackclient.shell network API version 2, cmd group openstack.network.v2
DEBUG: cliff.commandmanager found command 'image_set'
DEBUG: cliff.commandmanager found command 'image_delete'
DEBUG: cliff.commandmanager found command 'image_create'
DEBUG: cliff.commandmanager found command 'image_list'
DEBUG: cliff.commandmanager found command 'image_show'
DEBUG: cliff.commandmanager found command 'image_save'
DEBUG: openstackclient.shell image API version 1, cmd group openstack.image.v1
DEBUG: openstackclient.shell volume API version 2, cmd group openstack.volume.v2
DEBUG: cliff.commandmanager found command 'project_create'
DEBUG: cliff.commandmanager found command 'role_remove'
DEBUG: cliff.commandmanager found command 'project_list'
DEBUG: cliff.commandmanager found command 'role_list'
DEBUG: cliff.commandmanager found command 'policy_list'
DEBUG: cliff.commandmanager found command 'role_set'
DEBUG: cliff.commandmanager found command 'service_list'
DEBUG: cliff.commandmanager found command 'role_add'
DEBUG: cliff.commandmanager found command 'federation_protocol_delete'
DEBUG: cliff.commandmanager found command 'credential_create'
DEBUG: cliff.commandmanager found command 'identity_provider_show'
DEBUG: cliff.commandmanager found command 'consumer_show'
DEBUG: cliff.commandmanager found command 'group_list'
DEBUG: cliff.commandmanager found command 'domain_set'
DEBUG: cliff.commandmanager found command 'group_set'
DEBUG: cliff.commandmanager found command 'mapping_show'
DEBUG: cliff.commandmanager found command 'domain_delete'
DEBUG: cliff.commandmanager found command 'request_token_create'
DEBUG: cliff.commandmanager found command 'policy_delete'
DEBUG: cliff.commandmanager found command 'role_delete'
DEBUG: cliff.commandmanager found command 'consumer_create'
DEBUG: cliff.commandmanager found command 'credential_show'
DEBUG: cliff.commandmanager found command 'group_add_user'
DEBUG: cliff.commandmanager found command 'endpoint_set'
DEBUG: cliff.commandmanager found command 'user_create'
DEBUG: cliff.commandmanager found command 'identity_provider_set'
DEBUG: cliff.commandmanager found command 'endpoint_delete'
DEBUG: cliff.commandmanager found command 'project_set'
DEBUG: cliff.commandmanager found command 'group_create'
DEBUG: cliff.commandmanager found command 'policy_set'
DEBUG: cliff.commandmanager found command 'domain_create'
DEBUG: cliff.commandmanager found command 'policy_create'
DEBUG: cliff.commandmanager found command 'federation_protocol_list'
DEBUG: cliff.commandmanager found command 'service_show'
DEBUG: cliff.commandmanager found command 'token_issue'
DEBUG: cliff.commandmanager found command 'group_show'
DEBUG: cliff.commandmanager found command 'user_password_set'
DEBUG: cliff.commandmanager found command 'endpoint_show'
DEBUG: cliff.commandmanager found command 'group_remove_user'
DEBUG: cliff.commandmanager found command 'federation_protocol_set'
DEBUG: cliff.commandmanager found command 'user_delete'
DEBUG: cliff.commandmanager found command 'credential_set'
DEBUG: cliff.commandmanager found command 'mapping_set'
DEBUG: cliff.commandmanager found command 'service_create'
DEBUG: cliff.commandmanager found command 'group_delete'
DEBUG: cliff.commandmanager found command 'federation_protocol_create'
DEBUG: cliff.commandmanager found command 'project_show'
DEBUG: cliff.commandmanager found command 'project_delete'
DEBUG: cliff.commandmanager found command 'endpoint_list'
DEBUG: cliff.commandmanager found command 'access_token_create'
DEBUG: cliff.commandmanager found command 'identity_provider_create'
DEBUG: cliff.commandmanager found command 'policy_show'
DEBUG: cliff.commandmanager found command 'credential_delete'
DEBUG: cliff.commandmanager found command 'consumer_set'
DEBUG: cliff.commandmanager found command 'consumer_list'
DEBUG: cliff.commandmanager found command 'domain_show'
DEBUG: cliff.commandmanager found command 'mapping_delete'
DEBUG: cliff.commandmanager found command 'mapping_list'
DEBUG: cliff.commandmanager found command 'identity_provider_delete'
DEBUG: cliff.commandmanager found command 'mapping_create'
DEBUG: cliff.commandmanager found command 'consumer_delete'
DEBUG: cliff.commandmanager found command 'user_show'
DEBUG: cliff.commandmanager found command 'user_set'
DEBUG: cliff.commandmanager found command 'domain_list'
DEBUG: cliff.commandmanager found command 'credential_list'
DEBUG: cliff.commandmanager found command 'role_assignment_list'
DEBUG: cliff.commandmanager found command 'group_contains_user'
DEBUG: cliff.commandmanager found command 'service_delete'
DEBUG: cliff.commandmanager found command 'service_set'
DEBUG: cliff.commandmanager found command 'endpoint_create'
DEBUG: cliff.commandmanager found command 'identity_provider_list'
DEBUG: cliff.commandmanager found command 'federation_protocol_show'
DEBUG: cliff.commandmanager found command 'role_create'
DEBUG: cliff.commandmanager found command 'user_list'
DEBUG: cliff.commandmanager found command 'request_token_authorize'
DEBUG: cliff.commandmanager found command 'role_show'
DEBUG: openstackclient.shell identity API version 3, cmd group openstack.identity.v3
DEBUG: cliff.commandmanager found command 'object_create'
DEBUG: cliff.commandmanager found command 'object_list'
DEBUG: cliff.commandmanager found command 'object_delete'
DEBUG: cliff.commandmanager found command 'container_list'
DEBUG: cliff.commandmanager found command 'object_show'
DEBUG: cliff.commandmanager found command 'container_delete'
DEBUG: cliff.commandmanager found command 'container_create'
DEBUG: cliff.commandmanager found command 'container_show'
DEBUG: cliff.commandmanager found command 'container_save'
DEBUG: cliff.commandmanager found command 'object_save'
DEBUG: openstackclient.shell object_store API version 1, cmd group openstack.object_store.v1
DEBUG: cliff.commandmanager found command 'extension_list'
DEBUG: cliff.commandmanager found command 'quota_set'
DEBUG: cliff.commandmanager found command 'quota_show'
DEBUG: cliff.commandmanager found command 'limits_show'
DEBUG: stevedore.extension found extension EntryPoint.parse('table = cliff.formatters.table:TableFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('csv = cliff.formatters.commaseparated:CSVLister')
DEBUG: openstackclient.shell prepare_to_run_command ListExtension
DEBUG: openstackclient.shell validating authentication options
DEBUG: openstackclient.api.auth No auth plugin selected, picking v3password from other options
DEBUG: stevedore.extension found extension EntryPoint.parse('v2token = keystoneclient.auth.identity.v2:Token')
DEBUG: stevedore.extension found extension EntryPoint.parse('v2password = keystoneclient.auth.identity.v2:Password')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3password = keystoneclient.auth.identity.v3:Password')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3scopedsaml = keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3unscopedadfs = keystoneclient.contrib.auth.v3.saml2:ADFSUnscopedToken')
DEBUG: stevedore.extension found extension EntryPoint.parse('token = keystoneclient.auth.identity.generic:Token')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3token = keystoneclient.auth.identity.v3:Token')
DEBUG: stevedore.extension found extension EntryPoint.parse('password = keystoneclient.auth.identity.generic:Password')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3unscopedsaml = keystoneclient.contrib.auth.v3.saml2:Saml2UnscopedToken')
DEBUG: openstackclient.api.auth fetching option os_auth_url
DEBUG: openstackclient.api.auth fetching option os_domain_id
DEBUG: openstackclient.api.auth fetching option os_domain_name
DEBUG: openstackclient.api.auth fetching option os_project_id
DEBUG: openstackclient.api.auth fetching option os_project_name
DEBUG: openstackclient.api.auth fetching option os_project_domain_id
DEBUG: openstackclient.api.auth fetching option os_project_domain_name
DEBUG: openstackclient.api.auth fetching option os_trust_id
DEBUG: openstackclient.api.auth fetching option os_user_id
DEBUG: openstackclient.api.auth fetching option os_username
DEBUG: openstackclient.api.auth fetching option os_user_domain_id
DEBUG: openstackclient.api.auth fetching option os_user_domain_name
DEBUG: openstackclient.api.auth fetching option os_password
DEBUG: openstackclient.common.clientmanager Using auth plugin: v3password
DEBUG: stevedore.extension found extension EntryPoint.parse('v2token = keystoneclient.auth.identity.v2:Token')
DEBUG: stevedore.extension found extension EntryPoint.parse('v2password = keystoneclient.auth.identity.v2:Password')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3password = keystoneclient.auth.identity.v3:Password')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3scopedsaml = keystoneclient.contrib.auth.v3.saml2:Saml2ScopedToken')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3unscopedadfs = keystoneclient.contrib.auth.v3.saml2:ADFSUnscopedToken')
DEBUG: stevedore.extension found extension EntryPoint.parse('token = keystoneclient.auth.identity.generic:Token')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3token = keystoneclient.auth.identity.v3:Token')
DEBUG: stevedore.extension found extension EntryPoint.parse('password = keystoneclient.auth.identity.generic:Password')
DEBUG: stevedore.extension found extension EntryPoint.parse('v3unscopedsaml = keystoneclient.contrib.auth.v3.saml2:Saml2UnscopedToken')
DEBUG: openstackclient.common.clientmanager Populate other password flow attributes
DEBUG: keystoneclient.auth.identity.v3 Making authentication request to http://10.0.2.15:5000/v3/auth/tokens
INFO: requests.packages.urllib3.connectionpool Starting new HTTP connection (1): 10.0.2.15
DEBUG: requests.packages.urllib3.connectionpool "POST /v3/auth/tokens HTTP/1.1" 201 6634
DEBUG: keystoneclient.auth.identity.v3 Making authentication request to http://10.0.2.15:5000/v3/auth/tokens
DEBUG: requests.packages.urllib3.connectionpool "POST /v3/auth/tokens HTTP/1.1" 201 6634
DEBUG: openstackclient.common.extension.ListExtension take_action(Namespace(columns=[], compute=False, formatter='table', identity=True, long=False, max_width=0, network=False, quote_mode='nonnumeric', volume=False))
DEBUG: openstackclient.identity.client Instantiating identity client: <class 'keystoneclient.v3.client.Client'>
DEBUG: openstackclient.identity.client Using auth plugin: v3password
DEBUG: keystoneclient.auth.identity.v3 Making authentication request to http://10.0.2.15:5000/v3/auth/tokens
DEBUG: requests.packages.urllib3.connectionpool "POST /v3/auth/tokens HTTP/1.1" 201 6634
WARNING: openstackclient.common.extension.ListExtension Extensions list not supported by Identity API
Looks like python- keystoneclient doesn't have the ability to list extensions for a v3 client.