Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Cinder and Keystone Authorization Error (HTTP 401)

I'm having difficulty getting Cinder and Keystone to talk properly (I've tried several other solutions related to this question to no avail). I have an RDO deployment of OpenStack on a bare metal (the controller) and Cinder installed on a separate node (the node). I have confirmed connectivity between the controller and the node. On the controller, I have deleted the endpoints for cinder and cinderv2 and created new ones that point to the node. I have also deleted the cinder database on the controller and created and synced a rew one. Cinder-API and Cinder-Scheduler are running on the node, but when I try to run 'cinder list', I get the following error in cinder-api.log on the node:

WARNING [keystoneclient.middleware.auth_token] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}

On the controller, the following message shows in keystone.log:

WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from <node_IP>

Here's my cinder.conf on the node:

[DEFAULT]
logdir = /var/log/cinder
state_path = /var/lib/cinder
lock_path = /var/lib/cinder/tmp
volumes_dir = /etc/cinder/volumes
iscsi_helper = tgtadm

api_paste_config = /etc/cinder/api-paste.ini
sql_connection = mysql://cinder:5d96c8fa075b400d@<controller_iP>/cinder
rpc_backend = cinder.openstack.common.rpc.impl_kombu
rootwrap_config = /etc/cinder/rootwrap.conf
auth_strategy = keystone
rabbit_host = <controller_IP>
rabbit_port = 5672
rabbit_hosts = <controller_IP>:5672
rabbit_use_ssl=False
rabbit_userid=guest
rabbit_password=guest
#rabbit_login_method=AMQPLAIN
rabbit_virtual_host=/
rabbit_ha_queues=False
notification_driver=cinder.openstack.common.notifier.rpc_notifier

amqp_durable_queues=False

[keystone_authtoken]
admin_tenant_name = services
admin_user = cinder
admin_password = passw0rd
auth_uri = http://<controller_IP>:5000/v2.0/
auth_host = <controller_IP>
auth_port = 35357
auth_protocol = http
signing_dirname = /tmp/keystone-signing-cinder

[database]
connection = mysql://cinder:5d96c8fa075b400d@<controller_IP>/cinder
idle_timeout=3600

And api-paste.ini on the node:

#############
# OpenStack #
#############

[composite:osapi_volume]
use = call:cinder.api:root_app_factory
/: apiversions
/v1: openstack_volume_api_v1
/v2: openstack_volume_api_v2

[composite:openstack_volume_api_v1]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = faultwrap sizelimit noauth apiv1
keystone = faultwrap sizelimit authtoken keystonecontext apiv1
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext apiv1

[composite:openstack_volume_api_v2]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = faultwrap sizelimit noauth apiv2
keystone = faultwrap sizelimit authtoken keystonecontext apiv2
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext apiv2

[filter:faultwrap]
paste.filter_factory = cinder.api.middleware.fault:FaultWrapper.factory

[filter:noauth]
paste.filter_factory = cinder.api.middleware.auth:NoAuthMiddleware.factory

[filter:sizelimit]
paste.filter_factory = cinder.api.middleware.sizelimit:RequestBodySizeLimiter.factory

[app:apiv1]
paste.app_factory = cinder.api.v1.router:APIRouter.factory

[app:apiv2]
paste.app_factory = cinder.api.v2.router:APIRouter.factory

[pipeline:apiversions]
pipeline = faultwrap osvolumeversionapp

[app:osvolumeversionapp]
paste.app_factory = cinder.api.versions:Versions.factory

##########
# Shared #
##########

[filter:keystonecontext]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
#paste.filter_factory = cinder.api.middleware.auth:CinderKeystoneContext.factory

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
admin_tenant_name=services
auth_host=<controller_IP>
service_port=5000
auth_uri=http://<controller_IP>:5000/
auth_port=35357
service_host=<controller_IP>
service_protocol=http
admin_user=cinder
auth_protocol=http
admin_password= passw0rd

I have been messing with the config files for awhile now. I've tried including the credentials in one and not the other.

Any ideas to what is causing my error?

Thank you in advance.

Cinder and Keystone Authorization Error (HTTP 401)

I'm having difficulty getting Cinder and Keystone to talk properly (I've tried several other solutions related to this question to no avail). I have an RDO deployment of OpenStack on a bare metal (the controller) and Cinder installed on a separate node (the node). I have confirmed connectivity between the controller and the node. On the controller, I have deleted the endpoints for cinder and cinderv2 and created new ones that point to the node. I have also deleted the cinder database on the controller and created and synced a rew one. Cinder-API and Cinder-Scheduler are running on the node, but when I try to run 'cinder list', I get the following error in cinder-api.log on the node:

WARNING [keystoneclient.middleware.auth_token] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}

On the controller, the following message shows in keystone.log:

WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from <node_IP>

Here's my cinder.conf on the node:

[DEFAULT]
logdir = /var/log/cinder
state_path = /var/lib/cinder
lock_path = /var/lib/cinder/tmp
volumes_dir = /etc/cinder/volumes
iscsi_helper = tgtadm

api_paste_config = /etc/cinder/api-paste.ini
sql_connection = mysql://cinder:5d96c8fa075b400d@<controller_iP>/cinder
rpc_backend = cinder.openstack.common.rpc.impl_kombu
rootwrap_config = /etc/cinder/rootwrap.conf
auth_strategy = keystone
rabbit_host = <controller_IP>
rabbit_port = 5672
rabbit_hosts = <controller_IP>:5672
rabbit_use_ssl=False
rabbit_userid=guest
rabbit_password=guest
#rabbit_login_method=AMQPLAIN
rabbit_virtual_host=/
rabbit_ha_queues=False
notification_driver=cinder.openstack.common.notifier.rpc_notifier

amqp_durable_queues=False

[keystone_authtoken]
admin_tenant_name = services
admin_user = cinder
admin_password = passw0rd
auth_uri = http://<controller_IP>:5000/v2.0/
auth_host = <controller_IP>
auth_port = 35357
auth_protocol = http
signing_dirname = /tmp/keystone-signing-cinder

[database]
connection = mysql://cinder:5d96c8fa075b400d@<controller_IP>/cinder
idle_timeout=3600

And api-paste.ini on the node:

#############
# OpenStack #
#############

[composite:osapi_volume]
use = call:cinder.api:root_app_factory
/: apiversions
/v1: openstack_volume_api_v1
/v2: openstack_volume_api_v2

[composite:openstack_volume_api_v1]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = faultwrap sizelimit noauth apiv1
keystone = faultwrap sizelimit authtoken keystonecontext apiv1
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext apiv1

[composite:openstack_volume_api_v2]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = faultwrap sizelimit noauth apiv2
keystone = faultwrap sizelimit authtoken keystonecontext apiv2
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext apiv2

[filter:faultwrap]
paste.filter_factory = cinder.api.middleware.fault:FaultWrapper.factory

[filter:noauth]
paste.filter_factory = cinder.api.middleware.auth:NoAuthMiddleware.factory

[filter:sizelimit]
paste.filter_factory = cinder.api.middleware.sizelimit:RequestBodySizeLimiter.factory

[app:apiv1]
paste.app_factory = cinder.api.v1.router:APIRouter.factory

[app:apiv2]
paste.app_factory = cinder.api.v2.router:APIRouter.factory

[pipeline:apiversions]
pipeline = faultwrap osvolumeversionapp

[app:osvolumeversionapp]
paste.app_factory = cinder.api.versions:Versions.factory

##########
# Shared #
##########

[filter:keystonecontext]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
#paste.filter_factory = cinder.api.middleware.auth:CinderKeystoneContext.factory

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
admin_tenant_name=services
auth_host=<controller_IP>
service_port=5000
auth_uri=http://<controller_IP>:5000/
auth_port=35357
service_host=<controller_IP>
service_protocol=http
admin_user=cinder
auth_protocol=http
admin_password= passw0rd

Some output from 'cinder --debug list' (trimmed because of the large tokens):

RESP: [401] {'date': 'Thu, 25 Sep 2014 20:35:30 GMT', 'content-length': '276', 'content-type': 'text/plain; charset=UTF-8', 'www-authenticate': "Keystone uri='http:/<controller_IP>:5000/'"}
RESP BODY: 401 Unauthorized

This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g., bad password), or your browser does not understand how to supply the credentials required.

 Authentication required  

DEBUG (shell:495) Unauthorized (HTTP 401)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cinderclient/shell.py", line 490, in main
    OpenStackCinderShell().main(map(strutils.safe_decode, sys.argv[1:]))
  File "/usr/lib/python2.7/site-packages/cinderclient/shell.py", line 441, in main
    args.func(self.cs, args)
  File "/usr/lib/python2.7/site-packages/cinderclient/v1/shell.py", line 143, in do_list
    volumes = cs.volumes.list(search_opts=search_opts)
  File "/usr/lib/python2.7/site-packages/cinderclient/v1/volumes.py", line 204, in list
    "volumes")
  File "/usr/lib/python2.7/site-packages/cinderclient/base.py", line 63, in _list
    resp, body = self.api.client.get(url)
  File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 185, in get
    return self._cs_request(url, 'GET', **kwargs)
  File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 153, in _cs_request
    **kwargs)
  File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 136, in request
    raise exceptions.from_response(resp, body)
Unauthorized: Unauthorized (HTTP 401)
ERROR: Unauthorized

I have been messing with the config files for awhile now. I've tried including the credentials in one and not the other.

Any ideas to what is causing my error?

Thank you in advance.

Cinder and Keystone Authorization Error (HTTP 401)

I'm having difficulty getting Cinder and Keystone to talk properly (I've tried several other solutions related to this question to no avail). I have an RDO deployment of OpenStack on a bare metal (the controller) and Cinder installed on a separate node (the node). I have confirmed connectivity between the controller and the node. On the controller, I have deleted the endpoints for cinder and cinderv2 and created new ones that point to the node. I have also deleted the cinder database on the controller and created and synced a rew one. Cinder-API and Cinder-Scheduler are running on the node, but when I try to run 'cinder list', I get the following error in cinder-api.log on the node:

WARNING [keystoneclient.middleware.auth_token] Unexpected response from keystone service: {u'error': {u'message': u'The request you have made requires authentication.', u'code': 401, u'title': u'Unauthorized'}}

On the controller, the following message shows in keystone.log:

WARNING keystone.common.wsgi [-] Authorization failed. The request you have made requires authentication. from <node_IP>

Here's my cinder.conf on the node:

[DEFAULT]
logdir = /var/log/cinder
state_path = /var/lib/cinder
lock_path = /var/lib/cinder/tmp
volumes_dir = /etc/cinder/volumes
iscsi_helper = tgtadm

api_paste_config = /etc/cinder/api-paste.ini
sql_connection = mysql://cinder:5d96c8fa075b400d@<controller_iP>/cinder
rpc_backend = cinder.openstack.common.rpc.impl_kombu
rootwrap_config = /etc/cinder/rootwrap.conf
auth_strategy = keystone
rabbit_host = <controller_IP>
rabbit_port = 5672
rabbit_hosts = <controller_IP>:5672
rabbit_use_ssl=False
rabbit_userid=guest
rabbit_password=guest
#rabbit_login_method=AMQPLAIN
rabbit_virtual_host=/
rabbit_ha_queues=False
notification_driver=cinder.openstack.common.notifier.rpc_notifier

amqp_durable_queues=False

[keystone_authtoken]
admin_tenant_name = services
admin_user = cinder
admin_password = passw0rd
auth_uri = http://<controller_IP>:5000/v2.0/
auth_host = <controller_IP>
auth_port = 35357
auth_protocol = http
signing_dirname = /tmp/keystone-signing-cinder

[database]
connection = mysql://cinder:5d96c8fa075b400d@<controller_IP>/cinder
idle_timeout=3600

And api-paste.ini on the node:

#############
# OpenStack #
#############

[composite:osapi_volume]
use = call:cinder.api:root_app_factory
/: apiversions
/v1: openstack_volume_api_v1
/v2: openstack_volume_api_v2

[composite:openstack_volume_api_v1]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = faultwrap sizelimit noauth apiv1
keystone = faultwrap sizelimit authtoken keystonecontext apiv1
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext apiv1

[composite:openstack_volume_api_v2]
use = call:cinder.api.middleware.auth:pipeline_factory
noauth = faultwrap sizelimit noauth apiv2
keystone = faultwrap sizelimit authtoken keystonecontext apiv2
keystone_nolimit = faultwrap sizelimit authtoken keystonecontext apiv2

[filter:faultwrap]
paste.filter_factory = cinder.api.middleware.fault:FaultWrapper.factory

[filter:noauth]
paste.filter_factory = cinder.api.middleware.auth:NoAuthMiddleware.factory

[filter:sizelimit]
paste.filter_factory = cinder.api.middleware.sizelimit:RequestBodySizeLimiter.factory

[app:apiv1]
paste.app_factory = cinder.api.v1.router:APIRouter.factory

[app:apiv2]
paste.app_factory = cinder.api.v2.router:APIRouter.factory

[pipeline:apiversions]
pipeline = faultwrap osvolumeversionapp

[app:osvolumeversionapp]
paste.app_factory = cinder.api.versions:Versions.factory

##########
# Shared #
##########

[filter:keystonecontext]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
#paste.filter_factory = cinder.api.middleware.auth:CinderKeystoneContext.factory

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
admin_tenant_name=services
auth_host=<controller_IP>
service_port=5000
auth_uri=http://<controller_IP>:5000/
auth_port=35357
service_host=<controller_IP>
service_protocol=http
admin_user=cinder
auth_protocol=http
admin_password= passw0rd

Some output Output from 'cinder --debug list' (trimmed because of the large tokens):list':

REQ: curl -i http://<controller_IP>:35357/v2.0/tokens -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-cinderclient" -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "2ebdc18f23784ed5"}}}'

RESP: [200] {'date': 'Thu, 25 Sep 2014 21:19:56 GMT', 'content-type': 'application/json', 'content-length': '9732', 'vary': 'X-Auth-Token'}
RESP BODY: {"access": {"token": {"issued_at": "2014-09-25T21:19:56.751563", "expires": "2014-09-25T22:19:56Z", "id": "MIIRDAYJKoZIhvcNAQcCoIIQ-TCCEPkCAQExCTAHBgUrDgMCGjCCD2IGCSqGSIb3DQEHAaCCD1MEgg9PeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNC0wOS0yNVQyMToxOTo1Ni43NTE1NjMiLCAiZXhwaXJlcyI6ICIyMDE0LTA5LTI1VDIyOjE5OjU2WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogImFkbWluIHRlbmFudCIsICJlbmFibGVkIjogdHJ1ZSwgImlkIjogIjEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgIm5hbWUiOiAiYWRtaW4ifX0sICJzZXJ2aWNlQ2F0YWxvZyI6IFt7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiIsICJpZCI6ICIwOTMxMGM4OTBjZWI0ODUxYTc5NDY4ZTU3ZjFjN2QzOSIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4Nzc0L3YyLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2In1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo5Njk2LyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6OTY5Ni8iLCAiaWQiOiAiMGZlYWE4NzgxMWVhNGRkZDlkOWI3ZGNjNjYzMTRhOWEiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6OTY5Ni8ifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMjMuMjQ2LjIyMy42OTo4Nzc2L3YyLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzIzLjI0Ni4yMjMuNjk6ODc3Ni92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiIsICJpZCI6ICIxMGY0NmZjODA0OWQ0MzQ1OTYxYjI3ODQ4ZjFhZGViMiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzIzLjI0Ni4yMjMuNjk6ODc3Ni92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJ2b2x1bWV2MiIsICJuYW1lIjogImNpbmRlcl92MiJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92MyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92MyIsICJpZCI6ICIxMGNlZWUzNTI5NGE0MzQ1ODQ1ZmFmNmI3ZWU1MmUzZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4Nzc0L3YzIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGV2MyIsICJuYW1lIjogIm5vdmF2MyJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODA4MCIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODA4MCIsICJpZCI6ICI1YzZkODhiZjFjNjU0MDZhYTkyNmViNjM3NWU1MWYxNCIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4MDgwIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInMzIiwgIm5hbWUiOiAic3dpZnRfczMifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjkyOTIiLCAicmVnaW9uIjogIlJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjkyOTIiLCAiaWQiOiAiNTc0MTc4OWMwM2Y4NGI5ZDkxZTJmYzNmNzE4ZGRkN2IiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6OTI5MiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpbWFnZSIsICJuYW1lIjogImdsYW5jZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NyIsICJpZCI6ICIyYTQ2NGQ2ZWRlMTQ0YjE3OGJhOGVmM2FhMmFmNDgwNCIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4Nzc3In1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm1ldGVyaW5nIiwgIm5hbWUiOiAiY2VpbG9tZXRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8yMy4yNDYuMjIzLjY5Ojg3NzYvdjEvMTA2YzdiNmFlNjNiNDY1NGIzYjdjMjJkZDM0ZDJlNjYiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMjMuMjQ2LjIyMy42OTo4Nzc2L3YxLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgImlkIjogIjBlMzRjMjlmN2I5MjRjYTE4ZjYxMzM3ZWJhNjI5ZWI1IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMjMuMjQ2LjIyMy42OTo4Nzc2L3YxLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2In1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogImNpbmRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3My9zZXJ2aWNlcy9BZG1pbiIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3My9zZXJ2aWNlcy9DbG91ZCIsICJpZCI6ICJhMTdiNjEzZmNmYjc0MzkwOTZhYjI4ZTZmNDczOWFmNiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4NzczL3NlcnZpY2VzL0Nsb3VkIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImVjMiIsICJuYW1lIjogIm5vdmFfZWMyIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4MDgwLyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODA4MC92MS9BVVRIXzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgImlkIjogIjY2MWU0NjllOGYzYzQyZmI4N2NlYzNiZWZmMTI4YmU0IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjgwODAvdjEvQVVUSF8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJvYmplY3Qtc3RvcmUiLCAibmFtZSI6ICJzd2lmdCJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6MzUzNTcvdjIuMCIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6NTAwMC92Mi4wIiwgImlkIjogIjFlNmFmMjQ3N2M1YTQwZWI4Y2I1Y2VjMzQzNGRmMmQ3IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjUwMDAvdjIuMCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpZGVudGl0eSIsICJuYW1lIjogImtleXN0b25lIn1dLCAidXNlciI6IHsidXNlcm5hbWUiOiAiYWRtaW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImU5NGJlOGZkMzA1MDQ1OTRhNDU0M2Q2NWUxYTM5NzdiIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9XSwgIm5hbWUiOiAiYWRtaW4ifSwgIm1ldGFkYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFsiODQ0NGQ4M2IzZDQxNDc4Yjk0ZDgxYTFmODMwOTAyNWYiXX19fTGCAYEwggF9AgEBMFwwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVVuc2V0MQ4wDAYDVQQHDAVVbnNldDEOMAwGA1UECgwFVW5zZXQxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbQIBATAHBgUrDgMCGjANBgkqhkiG9w0BAQEFAASCAQAy14GFACt7UT09i9TBJuKRF6mdVuudaaC5Qw+a7ngZD72I2Xla5sUt76Cmrsn64Uw+FgpyYLCG6oiiAiKS0TXN8tMiWs9jMKfh9P4PfeNOiAJ8rw6IE9QpDIv+YKOYjFd52EqCdPDT49Sqzfg53PlQj88bew8GkY5AGKtf475xBf5C99kxWXsj7AuvzUhQJh7DNKOKfuwM6IKOGVYv1fnORCcolSWEe9NSyvCJ0CDB1yngmBPJtQQVYzsGycbYHkMBlcO2A4Po0-dXar8gYgAE4zsCnUWX6xbpwQOJ5jlgnydsAsxGJQK2Js2-NeftF5Gkfcz2si1t3E7iXOuJoXj2", "tenant": {"description": "admin tenant", "enabled": true, "id": "106c7b6ae63b4654b3b7c22dd34d2e66", "name": "admin"}}, "serviceCatalog": [{"endpoints": [{"adminURL": "http://10.91.21.134:8774/v2/106c7b6ae63b4654b3b7c22dd34d2e66", "region": "RegionOne", "internalURL": "http://10.91.21.134:8774/v2/106c7b6ae63b4654b3b7c22dd34d2e66", "id": "09310c890ceb4851a79468e57f1c7d39", "publicURL": "http://10.91.21.134:8774/v2/106c7b6ae63b4654b3b7c22dd34d2e66"}], "endpoints_links": [], "type": "compute", "name": "nova"}, {"endpoints": [{"adminURL": "http://10.91.21.134:9696/", "region": "RegionOne", "internalURL": "http://10.91.21.134:9696/", "id": "0feaa87811ea4ddd9d9b7dcc66314a9a", "publicURL": "http://10.91.21.134:9696/"}], "endpoints_links": [], "type": "network", "name": "neutron"}, {"endpoints": [{"adminURL": "http://23.246.223.69:8776/v2/106c7b6ae63b4654b3b7c22dd34d2e66", "region": "regionOne", "internalURL": "http://23.246.223.69:8776/v2/106c7b6ae63b4654b3b7c22dd34d2e66", "id": "10f46fc8049d4345961b27848f1adeb2", "publicURL": "http://23.246.223.69:8776/v2/106c7b6ae63b4654b3b7c22dd34d2e66"}], "endpoints_links": [], "type": "volumev2", "name": "cinder_v2"}, {"endpoints": [{"adminURL": "http://10.91.21.134:8774/v3", "region": "RegionOne", "internalURL": "http://10.91.21.134:8774/v3", "id": "10ceee35294a4345845faf6b7ee52e3f", "publicURL": "http://10.91.21.134:8774/v3"}], "endpoints_links": [], "type": "computev3", "name": "novav3"}, {"endpoints": [{"adminURL": "http://10.91.21.134:8080", "region": "RegionOne", "internalURL": "http://10.91.21.134:8080", "id": "5c6d88bf1c65406aa926eb6375e51f14", "publicURL": "http://10.91.21.134:8080"}], "endpoints_links": [], "type": "s3", "name": "swift_s3"}, {"endpoints": [{"adminURL": "http://10.91.21.134:9292", "region": "RegionOne", "internalURL": "http://10.91.21.134:9292", "id": "5741789c03f84b9d91e2fc3f718ddd7b", "publicURL": "http://10.91.21.134:9292"}], "endpoints_links": [], "type": "image", "name": "glance"}, {"endpoints": [{"adminURL": "http://10.91.21.134:8777", "region": "RegionOne", "internalURL": "http://10.91.21.134:8777", "id": "2a464d6ede144b178ba8ef3aa2af4804", "publicURL": "http://10.91.21.134:8777"}], "endpoints_links": [], "type": "metering", "name": "ceilometer"}, {"endpoints": [{"adminURL": "http://23.246.223.69:8776/v1/106c7b6ae63b4654b3b7c22dd34d2e66", "region": "regionOne", "internalURL": "http://23.246.223.69:8776/v1/106c7b6ae63b4654b3b7c22dd34d2e66", "id": "0e34c29f7b924ca18f61337eba629eb5", "publicURL": "http://23.246.223.69:8776/v1/106c7b6ae63b4654b3b7c22dd34d2e66"}], "endpoints_links": [], "type": "volume", "name": "cinder"}, {"endpoints": [{"adminURL": "http://10.91.21.134:8773/services/Admin", "region": "RegionOne", "internalURL": "http://10.91.21.134:8773/services/Cloud", "id": "a17b613fcfb7439096ab28e6f4739af6", "publicURL": "http://10.91.21.134:8773/services/Cloud"}], "endpoints_links": [], "type": "ec2", "name": "nova_ec2"}, {"endpoints": [{"adminURL": "http://10.91.21.134:8080/", "region": "RegionOne", "internalURL": "http://10.91.21.134:8080/v1/AUTH_106c7b6ae63b4654b3b7c22dd34d2e66", "id": "661e469e8f3c42fb87cec3beff128be4", "publicURL": "http://10.91.21.134:8080/v1/AUTH_106c7b6ae63b4654b3b7c22dd34d2e66"}], "endpoints_links": [], "type": "object-store", "name": "swift"}, {"endpoints": [{"adminURL": "http://10.91.21.134:35357/v2.0", "region": "RegionOne", "internalURL": "http://10.91.21.134:5000/v2.0", "id": "1e6af2477c5a40eb8cb5cec3434df2d7", "publicURL": "http://10.91.21.134:5000/v2.0"}], "endpoints_links": [], "type": "identity", "name": "keystone"}], "user": {"username": "admin", "roles_links": [], "id": "e94be8fd30504594a4543d65e1a3977b", "roles": [{"name": "admin"}], "name": "admin"}, "metadata": {"is_admin": 0, "roles": ["8444d83b3d41478b94d81a1f8309025f"]}}}


REQ: curl -i http://<node_IP>:8776/v1/106c7b6ae63b4654b3b7c22dd34d2e66/volumes/detail -X GET -H "X-Auth-Project-Id: admin" -H "User-Agent: python-cinderclient" -H "Accept: application/json" -H "X-Auth-Token: MIIRDAYJKoZIhvcNAQcCoIIQ-TCCEPkCAQExCTAHBgUrDgMCGjCCD2IGCSqGSIb3DQEHAaCCD1MEgg9PeyJhY2Nlc3MiOiB7InRva2VuIjogeyJpc3N1ZWRfYXQiOiAiMjAxNC0wOS0yNVQyMToxOTo1Ni43NTE1NjMiLCAiZXhwaXJlcyI6ICIyMDE0LTA5LTI1VDIyOjE5OjU2WiIsICJpZCI6ICJwbGFjZWhvbGRlciIsICJ0ZW5hbnQiOiB7ImRlc2NyaXB0aW9uIjogImFkbWluIHRlbmFudCIsICJlbmFibGVkIjogdHJ1ZSwgImlkIjogIjEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgIm5hbWUiOiAiYWRtaW4ifX0sICJzZXJ2aWNlQ2F0YWxvZyI6IFt7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiIsICJpZCI6ICIwOTMxMGM4OTBjZWI0ODUxYTc5NDY4ZTU3ZjFjN2QzOSIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4Nzc0L3YyLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2In1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGUiLCAibmFtZSI6ICJub3ZhIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo5Njk2LyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6OTY5Ni8iLCAiaWQiOiAiMGZlYWE4NzgxMWVhNGRkZDlkOWI3ZGNjNjYzMTRhOWEiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6OTY5Ni8ifV0sICJlbmRwb2ludHNfbGlua3MiOiBbXSwgInR5cGUiOiAibmV0d29yayIsICJuYW1lIjogIm5ldXRyb24ifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMjMuMjQ2LjIyMy42OTo4Nzc2L3YyLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgInJlZ2lvbiI6ICJyZWdpb25PbmUiLCAiaW50ZXJuYWxVUkwiOiAiaHR0cDovLzIzLjI0Ni4yMjMuNjk6ODc3Ni92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiIsICJpZCI6ICIxMGY0NmZjODA0OWQ0MzQ1OTYxYjI3ODQ4ZjFhZGViMiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzIzLjI0Ni4yMjMuNjk6ODc3Ni92Mi8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJ2b2x1bWV2MiIsICJuYW1lIjogImNpbmRlcl92MiJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92MyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NC92MyIsICJpZCI6ICIxMGNlZWUzNTI5NGE0MzQ1ODQ1ZmFmNmI3ZWU1MmUzZiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4Nzc0L3YzIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImNvbXB1dGV2MyIsICJuYW1lIjogIm5vdmF2MyJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODA4MCIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODA4MCIsICJpZCI6ICI1YzZkODhiZjFjNjU0MDZhYTkyNmViNjM3NWU1MWYxNCIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4MDgwIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInMzIiwgIm5hbWUiOiAic3dpZnRfczMifSwgeyJlbmRwb2ludHMiOiBbeyJhZG1pblVSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjkyOTIiLCAicmVnaW9uIjogIlJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjkyOTIiLCAiaWQiOiAiNTc0MTc4OWMwM2Y4NGI5ZDkxZTJmYzNmNzE4ZGRkN2IiLCAicHVibGljVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6OTI5MiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpbWFnZSIsICJuYW1lIjogImdsYW5jZSJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3NyIsICJpZCI6ICIyYTQ2NGQ2ZWRlMTQ0YjE3OGJhOGVmM2FhMmFmNDgwNCIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4Nzc3In1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogIm1ldGVyaW5nIiwgIm5hbWUiOiAiY2VpbG9tZXRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8yMy4yNDYuMjIzLjY5Ojg3NzYvdjEvMTA2YzdiNmFlNjNiNDY1NGIzYjdjMjJkZDM0ZDJlNjYiLCAicmVnaW9uIjogInJlZ2lvbk9uZSIsICJpbnRlcm5hbFVSTCI6ICJodHRwOi8vMjMuMjQ2LjIyMy42OTo4Nzc2L3YxLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgImlkIjogIjBlMzRjMjlmN2I5MjRjYTE4ZjYxMzM3ZWJhNjI5ZWI1IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMjMuMjQ2LjIyMy42OTo4Nzc2L3YxLzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2In1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogInZvbHVtZSIsICJuYW1lIjogImNpbmRlciJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3My9zZXJ2aWNlcy9BZG1pbiIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODc3My9zZXJ2aWNlcy9DbG91ZCIsICJpZCI6ICJhMTdiNjEzZmNmYjc0MzkwOTZhYjI4ZTZmNDczOWFmNiIsICJwdWJsaWNVUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4NzczL3NlcnZpY2VzL0Nsb3VkIn1dLCAiZW5kcG9pbnRzX2xpbmtzIjogW10sICJ0eXBlIjogImVjMiIsICJuYW1lIjogIm5vdmFfZWMyIn0sIHsiZW5kcG9pbnRzIjogW3siYWRtaW5VUkwiOiAiaHR0cDovLzEwLjkxLjIxLjEzNDo4MDgwLyIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6ODA4MC92MS9BVVRIXzEwNmM3YjZhZTYzYjQ2NTRiM2I3YzIyZGQzNGQyZTY2IiwgImlkIjogIjY2MWU0NjllOGYzYzQyZmI4N2NlYzNiZWZmMTI4YmU0IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjgwODAvdjEvQVVUSF8xMDZjN2I2YWU2M2I0NjU0YjNiN2MyMmRkMzRkMmU2NiJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJvYmplY3Qtc3RvcmUiLCAibmFtZSI6ICJzd2lmdCJ9LCB7ImVuZHBvaW50cyI6IFt7ImFkbWluVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6MzUzNTcvdjIuMCIsICJyZWdpb24iOiAiUmVnaW9uT25lIiwgImludGVybmFsVVJMIjogImh0dHA6Ly8xMC45MS4yMS4xMzQ6NTAwMC92Mi4wIiwgImlkIjogIjFlNmFmMjQ3N2M1YTQwZWI4Y2I1Y2VjMzQzNGRmMmQ3IiwgInB1YmxpY1VSTCI6ICJodHRwOi8vMTAuOTEuMjEuMTM0OjUwMDAvdjIuMCJ9XSwgImVuZHBvaW50c19saW5rcyI6IFtdLCAidHlwZSI6ICJpZGVudGl0eSIsICJuYW1lIjogImtleXN0b25lIn1dLCAidXNlciI6IHsidXNlcm5hbWUiOiAiYWRtaW4iLCAicm9sZXNfbGlua3MiOiBbXSwgImlkIjogImU5NGJlOGZkMzA1MDQ1OTRhNDU0M2Q2NWUxYTM5NzdiIiwgInJvbGVzIjogW3sibmFtZSI6ICJhZG1pbiJ9XSwgIm5hbWUiOiAiYWRtaW4ifSwgIm1ldGFkYXRhIjogeyJpc19hZG1pbiI6IDAsICJyb2xlcyI6IFsiODQ0NGQ4M2IzZDQxNDc4Yjk0ZDgxYTFmODMwOTAyNWYiXX19fTGCAYEwggF9AgEBMFwwVzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVVuc2V0MQ4wDAYDVQQHDAVVbnNldDEOMAwGA1UECgwFVW5zZXQxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbQIBATAHBgUrDgMCGjANBgkqhkiG9w0BAQEFAASCAQAy14GFACt7UT09i9TBJuKRF6mdVuudaaC5Qw+a7ngZD72I2Xla5sUt76Cmrsn64Uw+FgpyYLCG6oiiAiKS0TXN8tMiWs9jMKfh9P4PfeNOiAJ8rw6IE9QpDIv+YKOYjFd52EqCdPDT49Sqzfg53PlQj88bew8GkY5AGKtf475xBf5C99kxWXsj7AuvzUhQJh7DNKOKfuwM6IKOGVYv1fnORCcolSWEe9NSyvCJ0CDB1yngmBPJtQQVYzsGycbYHkMBlcO2A4Po0-dXar8gYgAE4zsCnUWX6xbpwQOJ5jlgnydsAsxGJQK2Js2-NeftF5Gkfcz2si1t3E7iXOuJoXj2"

RESP: [401] {'date': 'Thu, 25 Sep 2014 20:35:30 21:19:55 GMT', 'content-length': '276', 'content-type': 'text/plain; charset=UTF-8', 'www-authenticate': "Keystone uri='http:/<controller_IP>:5000/'"}
uri='http://<controller_IP>:5000/'"}
RESP BODY: 401 Unauthorized

This server could not verify that you are authorized to access the document you requested. Either you supplied the wrong credentials (e.g., bad password), or your browser does not understand how to supply the credentials required.

 Authentication required  

DEBUG (shell:495) Unauthorized (HTTP 401)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cinderclient/shell.py", line 490, in main
    OpenStackCinderShell().main(map(strutils.safe_decode, sys.argv[1:]))
  File "/usr/lib/python2.7/site-packages/cinderclient/shell.py", line 441, in main
    args.func(self.cs, args)
  File "/usr/lib/python2.7/site-packages/cinderclient/v1/shell.py", line 143, in do_list
    volumes = cs.volumes.list(search_opts=search_opts)
  File "/usr/lib/python2.7/site-packages/cinderclient/v1/volumes.py", line 204, in list
    "volumes")
  File "/usr/lib/python2.7/site-packages/cinderclient/base.py", line 63, in _list
    resp, body = self.api.client.get(url)
  File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 185, in get
    return self._cs_request(url, 'GET', **kwargs)
  File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 153, in _cs_request
    **kwargs)
  File "/usr/lib/python2.7/site-packages/cinderclient/client.py", line 136, in request
    raise exceptions.from_response(resp, body)
Unauthorized: Unauthorized (HTTP 401)
ERROR: Unauthorized

I have been messing with the config files for awhile now. I've tried including the credentials in one and not the other.

Any ideas to what is causing my error?

Thank you in advance.