[Openstack] Swift+Keystone error

Tres Henry tres at treshenry.net
Tue Jun 21 23:31:28 UTC 2011


Trying to get a Swift+Keystone dev environment setup and having some issues.
I'm running Swift 1.4.2 and have it pointing at Keystone 0.9 (on the same
VM) according to the instructions at https://github.com/rackspace/keystone,
however, Swift is reporting 500s from Keystone (Auth GET failed:
http://127.0.0.1:8080/v1.0 500 Internal Server Error) and the Keystone log
says:


eventlet.wsgi.server: DEBUG    Traceback (most recent call last):

  File "/usr/lib/python2.6/dist-packages/eventlet/wsgi.py", line 336, in
handle_one_response

    result = self.application(self.environ, start_response)

  File "/home/tres/nova/keystone/keystone/frontends/legacy_token_auth.py",
line 74, in __call__

    new_request.body = json.dumps(params)

  File "/usr/lib/pymodules/python2.6/webob/request.py", line 1173, in
__setattr__

    object.__setattr__(self, attr, value)

  File "/usr/lib/pymodules/python2.6/webob/request.py", line 498, in
_body__set

    raise ValueError("%s requests cannot have body" % self.method)

ValueError: GET requests cannot have body


(this was specifically when trying "swift -A http://127.0.0.1:8080/v1.0 -U
joeuser -K secrete post container"


Here's some relevant configs if it helps:


-- keystone.conf --


[DEFAULT]

# Show more verbose log output (sets INFO log level output)

verbose = True


# Show debugging output in logs (sets DEBUG log level output)

debug = True


# Which backend store should Keystone use by default.

# Default: 'sqlite'

# Available choices are 'sqlite' [future will include LDAP, PAM, etc]

default_store = sqlite


# Log to this file. Make sure you do not set the same log

# file for both the API and registry servers!

#log_file = /var/log/keystone.log

log_file = keystone.log


# SQLAlchemy connection string for the reference implementation

# registry server. Any valid SQLAlchemy connection string is fine.

# See:
http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine

sql_connection = sqlite:///../keystone/keystone.db


# Period in seconds after which SQLAlchemy should reestablish its connection

# to the database.

sql_idle_timeout = 30


#Dictionary Maps every service to a header.Missing services would get header
X_(SERVICE_NAME) Key => Service Name, Value => Header Name

service-header-mappings = {'nova' : 'X-Server-Management-Url' , 'swift' :
'X-Storage-Url', 'cdn' : 'X-CDN-Management-Url'}


# Address to bind the API server

#TODO Properties defined within app not available via pipeline.Till then
server props stay outside.

server_bind_host = 0.0.0.0


# Port the bind the API server to

server_bind_port = 8080

[app:admin]

paste.app_factory = keystone.server:admin_app_factory


# Address to bind the Admin API server

bind_host = 0.0.0.0


# Port the bind the Admin API server to

bind_port = 8081


[app:server]

paste.app_factory = keystone.server:app_factory


[pipeline:keystone-legacy-auth]

pipeline =

    legacy_auth

    server


[filter:legacy_auth]

paste.filter_factory = keystone.frontends.legacy_token_auth:filter_factory



-- proxy-server.conf --


[DEFAULT]

bind_port = 8888

user = root

log_facility = LOG_LOCAL1


[pipeline:main]

pipeline = catch_errors healthcheck cache keystone proxy-server


[app:proxy-server]

use = egg:swift#proxy

allow_account_management = true


[filter:keystone]

use = egg:keystone#tokenauth

auth_protocol = http

auth_host = 127.0.0.1

auth_port = 8081

admin_token = 999888777666

delay_auth_decision = 0

service_protocol = http

service_host = 127.0.0.1

service_port = 8100

service_pass = dTpw


[filter:healthcheck]

use = egg:swift#healthcheck


[filter:cache]

use = egg:swift#memcache


[filter:catch_errors]

use = egg:swift#catch_errors
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20110621/5200777c/attachment.html>


More information about the Openstack mailing list